আইওএস 7.0 এবং সিস্টেমের অবক্ষয়ের অধীনে অবৈধ প্রসঙ্গ 0x0


218

আমি এই ভয়ঙ্কর সমস্যাটিতে যতগুলি অনুসন্ধান ফলাফল পেয়েছি তা পড়েছি, দুর্ভাগ্যক্রমে, প্রত্যেকে একটি নির্দিষ্ট ফাংশন কলটিতে ফোকাস করছে বলে মনে হচ্ছে।

আমার সমস্যাটি হ'ল আমি একাধিক ফাংশন থেকে একই ত্রুটি পেয়েছি, যা আমি অনুমান করছি যেগুলি আমি যে ফাংশনগুলি ব্যবহার করি তা থেকে ফিরিয়ে আনা হবে।

বিষয়টিকে আরও খারাপ করার জন্য, আসল কোডটি একটি কাস্টম বেসরকারী কাঠামোর মধ্যে যা অন্য প্রকল্পে আমদানি করা হচ্ছে, এবং যেমন, ডিবাগ করা এত সহজ নয়?

কেউ কি আমাকে সঠিক দিকে নির্দেশ করতে পারে? আমার একটা অনুভূতি আছে যা আমি নির্দিষ্ট পদ্ধতিগুলিকে ভুল বা খারাপ প্রসঙ্গে কল করছি, তবে এক্সকোড থেকে আউটপুট এই মুহুর্তে খুব বেশি সহায়ক নয়।

: সিজি কনটেক্সটসেটফিল কালার উইথ কালার: অবৈধ প্রসঙ্গ 0x0। এটি একটি গুরুতর ত্রুটি। এই অ্যাপ্লিকেশন, বা এটি ব্যবহার করে একটি গ্রন্থাগার একটি অবৈধ প্রসঙ্গ ব্যবহার করছে এবং এর ফলে সিস্টেমের স্থিতিশীলতা এবং নির্ভরযোগ্যতার সামগ্রিক অবক্ষয় অবদান রয়েছে। এই বিজ্ঞপ্তিটি সৌজন্যে: দয়া করে এই সমস্যাটি সমাধান করুন। এটি একটি আসন্ন আপডেটে মারাত্মক ত্রুটি হয়ে উঠবে।

: সিজি কনটেক্সটসেট স্ট্রোককলার উইথ কালার: অবৈধ প্রসঙ্গ 0x0। এটি একটি গুরুতর ত্রুটি। এই অ্যাপ্লিকেশন, বা এটি ব্যবহার করে একটি গ্রন্থাগার একটি অবৈধ প্রসঙ্গ ব্যবহার করছে এবং এর ফলে সিস্টেমের স্থিতিশীলতা এবং নির্ভরযোগ্যতার সামগ্রিক অবক্ষয় অবদান রয়েছে। এই বিজ্ঞপ্তিটি সৌজন্যে: দয়া করে এই সমস্যাটি সমাধান করুন। এটি একটি আসন্ন আপডেটে মারাত্মক ত্রুটি হয়ে উঠবে।

CGContextSaveGState: অবৈধ প্রসঙ্গ 0x0। এটি একটি গুরুতর ত্রুটি। এই অ্যাপ্লিকেশন, বা এটি ব্যবহার করে একটি গ্রন্থাগার একটি অবৈধ প্রসঙ্গ ব্যবহার করছে এবং এর ফলে সিস্টেমের স্থিতিশীলতা এবং নির্ভরযোগ্যতার সামগ্রিক অবক্ষয় অবদান রয়েছে। এই বিজ্ঞপ্তিটি সৌজন্যে: দয়া করে এই সমস্যাটি সমাধান করুন। এটি একটি আসন্ন আপডেটে মারাত্মক ত্রুটি হয়ে উঠবে।

: সিজি কনটেক্সটসেট ফ্ল্যাটনেস: অবৈধ প্রসঙ্গ 0x0। এটি একটি গুরুতর ত্রুটি। এই অ্যাপ্লিকেশন, বা এটি ব্যবহার করে একটি গ্রন্থাগার একটি অবৈধ প্রসঙ্গ ব্যবহার করছে এবং এর ফলে সিস্টেমের স্থিতিশীলতা এবং নির্ভরযোগ্যতার সামগ্রিক অবক্ষয় অবদান রয়েছে। এই বিজ্ঞপ্তিটি সৌজন্যে: দয়া করে এই সমস্যাটি সমাধান করুন। এটি একটি আসন্ন আপডেটে মারাত্মক ত্রুটি হয়ে উঠবে।

: সিজি কনটেক্সটএডডপথ: অবৈধ প্রসঙ্গ 0x0। এটি একটি গুরুতর ত্রুটি। এই অ্যাপ্লিকেশন, বা এটি ব্যবহার করে একটি গ্রন্থাগার একটি অবৈধ প্রসঙ্গ ব্যবহার করছে এবং এর ফলে সিস্টেমের স্থিতিশীলতা এবং নির্ভরযোগ্যতার সামগ্রিক অবক্ষয় অবদান রয়েছে। এই বিজ্ঞপ্তিটি সৌজন্যে: দয়া করে এই সমস্যাটি সমাধান করুন। এটি একটি আসন্ন আপডেটে মারাত্মক ত্রুটি হয়ে উঠবে।

: সিজি কনটেক্সটড্রাপপথ: অবৈধ প্রসঙ্গ 0x0। এটি একটি গুরুতর ত্রুটি। এই অ্যাপ্লিকেশন, বা এটি ব্যবহার করে একটি গ্রন্থাগার একটি অবৈধ প্রসঙ্গ ব্যবহার করছে এবং এর ফলে সিস্টেমের স্থিতিশীলতা এবং নির্ভরযোগ্যতার সামগ্রিক অবক্ষয় অবদান রয়েছে। এই বিজ্ঞপ্তিটি সৌজন্যে: দয়া করে এই সমস্যাটি সমাধান করুন। এটি একটি আসন্ন আপডেটে মারাত্মক ত্রুটি হয়ে উঠবে।

: সিজি কনটেক্সটরেস্টোরজিস্টেট: অবৈধ প্রসঙ্গ 0x0। এটি একটি গুরুতর ত্রুটি। এই অ্যাপ্লিকেশন, বা এটি ব্যবহার করে একটি গ্রন্থাগার একটি অবৈধ প্রসঙ্গ ব্যবহার করছে এবং এর ফলে সিস্টেমের স্থিতিশীলতা এবং নির্ভরযোগ্যতার সামগ্রিক অবক্ষয় অবদান রয়েছে। এই বিজ্ঞপ্তিটি সৌজন্যে: দয়া করে এই সমস্যাটি সমাধান করুন। এটি একটি আসন্ন আপডেটে মারাত্মক ত্রুটি হয়ে উঠবে।

: সিজি কনটেক্সটগেটব্ল্যান্ডমোড: অবৈধ প্রসঙ্গ 0x0। এটি একটি গুরুতর ত্রুটি। এই অ্যাপ্লিকেশন, বা এটি ব্যবহার করে একটি গ্রন্থাগার একটি অবৈধ প্রসঙ্গ ব্যবহার করছে এবং এর ফলে সিস্টেমের স্থিতিশীলতা এবং নির্ভরযোগ্যতার সামগ্রিক অবক্ষয় অবদান রয়েছে। এই বিজ্ঞপ্তিটি সৌজন্যে: দয়া করে এই সমস্যাটি সমাধান করুন। এটি একটি আসন্ন আপডেটে মারাত্মক ত্রুটি হয়ে উঠবে।

যখন কোনও কাস্টম ভিউ উপস্থাপন করা হয় বা এর উত্তরাধিকার সূত্রে প্রাপ্ত কোনও শ্রেণীর ক্ষেত্রে এই ত্রুটিগুলি দেখা দিতে পারে। কোন মুহূর্তে এগুলি একাধিকবার স্পোন করে, যতক্ষণ না কীবোর্ড কোনও ইনপুট সরবরাহ করে না। স্পর্শ ইভেন্টগুলি এখনও নিবন্ধভুক্ত রয়েছে, তবে সিস্টেমটি ধীর হয়ে যায় এবং অবশেষে অব্যবহৃত অবজেক্টের ত্রুটির কারণ হতে পারে।

সম্পাদনা # 1: আমদানি করা ফ্রেমওয়ার্কটিতে আমার অ্যাক্সেস রয়েছে তবে আমি ক্লাসগুলিতে এমন কোনও অদ্ভুত কিছু দেখতে পাচ্ছি না যা সমস্যাটি সৃষ্টি করে।

সম্পাদনা # 2: আমি সবেমাত্র একটি ইমেল পেয়েছি যে বিকাশকারীদের জন্য আইওএস 7.1 প্রকাশিত হয়েছে। আমি জানতে আগ্রহী যে এটি চলে যায়, বা আরও খারাপ হয়ে যায়, বা সমাধান করা যায়।


8
ফর্মের স্ট্যান্ডার্ড পাঠ্য বাক্স থেকে - আমরা আমাদের অ্যাপটিতে একই ত্রুটিটি পাই। কীবোর্ডটি দেখানোর সময় আপনি যদি একাধিক বার টেক্সট বাক্সে ট্যাপ করেন তবে আপনি এই ত্রুটিটি উপস্থিত হয়ে যাবেন।

একই অবস্থা. কখনও কখনও এই লগ কয়েকশ, কখনও শূন্য। আমি ভেবেছিলাম কারণ এটি আমি ড্রআরেক্টকে ওভাররাইড করছি: তবে এটি অন্যরকম বলে মনে হচ্ছে। আপাতত এটি উপেক্ষা করছেন।
ক্রুমেলুর

2
আমি স্রেফ ডেভেলপার.অ্যাপল ডটকমের প্রথম টিউটোরিয়ালটি শেষ করেছি (অ্যাপলের প্রস্তাবিত কোডটি অনুলিপি করছি) এবং আমি এই একই ত্রুটি পেয়েছি। যদি আরও অভিজ্ঞ প্রোগ্রামাররা সেই টিউটোরিয়ালটি দেখে তবে তারা এই সমস্যার কারণ অনুসন্ধান করতে সক্ষম হয়।
আন্তোনিও সেস্তো

1
নীচে দেখুন (যেখানে আপনি কাস্টম UI উপাদান ব্যবহার করছেন সেই দৃশ্যে
অটলআউটটি বন্ধ করুন

1
এখনও 2016 সালে ঘটে (এক্সকোড 7, আইওএস 9.2), এখনও কোনও আপত্তিজনক ক্ষতি হয়নি।
হ্যাচমাস্টার জে

উত্তর:


162

অন্যরা আপনাকে এমন কোড পোস্ট করতে বলবে যেখানে আপনি একটি গ্রাফিক্স প্রসঙ্গটি অ্যাক্সেস করেন তবে আমি সন্দেহ করি এটিই সমস্যা। এই অবৈধ প্রসঙ্গ 0x0 ত্রুটি বার্তাগুলি আইওএস 7 এ পুনরুত্পাদন করা সাধারণ এবং সহজ In আসলে, আমি শূন্য কোড সহ স্টোরিবোর্ড ব্যবহার করে ত্রুটিটি পুনরুত্পাদন করতে পারি। আমি আইবিতে ক্যানভাসে একটি ইউআইটিেক্সটফিল্ড টেনে নিয়েছি, অ্যাপটি চালাচ্ছি এবং পাঠ্য ক্ষেত্রের ভিতরে ডাবল ট্যাপ করব।

অনেক পরিস্থিতিতে আমার পক্ষে অবৈধ প্রসঙ্গ 0x0 ত্রুটি বার্তাকে গুরুত্ব সহকারে নেওয়া কঠিন hard আমি জানি না আপনার পরিস্থিতি আরও উদ্বেগের বিষয়ে সতর্ক করে কিনা (আমি রব নেপিয়ারের সাথে একমত হই যে এটি তদন্তের উপযুক্ত, বিশেষত যদি আপনি স্পষ্টভাবে গ্রাফিক্স প্রসঙ্গে ব্যবহার করছেন)।

আমার নিজস্ব প্রকল্পগুলিতে, আমি আশা করছি যে এই ত্রুটিগুলির অনেকগুলি কোনও দিন যাদুবিদ্যার সাথে কোনও দিন অদৃশ্য হয়ে যায় (তবে সেদিনটি 7.0.3 দিয়ে আসে নি)।

আপডেট: এক্সকোড 5.1 ইনস্টল করার পরে এবং আইওএস 7.1 লক্ষ্যবস্তু করার পরে, আমি আর খালি পাঠ্য ক্ষেত্রের ভিতরে ডাবল আলতো চাপ দিয়ে ত্রুটিটি পুনরুত্পাদন করতে পারি না।


10
আপনি এই আইওএস 7 ইউআইটিেক্সটফিল্ড বাগটি সম্পর্কে সম্পূর্ণ সঠিক correct এটির জন্য একটি রাডার অবশ্যই খোলার বিষয়ে নিশ্চিত হন (bugreport.apple.com) তবে সমস্যাটি এখানেই ধরে নিতে খুব তাড়াতাড়ি করবেন না। যেহেতু এটি একটি কাস্টম ভিউ, তাই এটি প্রথমে @ রব এর বিষয়গুলি খতিয়ে দেখার মতো।
রব নেপিয়ার 21

2
আমার সাথে এটি ঘটছে .. আমি আইবিতে একটি ইউটেক্সটফিল্ড ফেলেছি, ত্রুটিটি পেয়েছি এবং কীবোর্ডটি উপস্থিত হবে না .. এর কোনও সমাধান আছে ?? ধন্যবাদ
ফ্রেড

@ ফ্রেড আমার জন্য কীবোর্ডটি উপস্থিত হয় এবং কঠোর ত্রুটির বার্তা থাকা সত্ত্বেও অ্যাপটি সাধারণত চলমান। সুতরাং আপনার একটি অতিরিক্ত সমস্যা হতে পারে।
বিলোবাতাম

3
আমারও একই সমস্যা আছে। এটি কেবল সিমুলেটারেই ঘটে, তবে আমি লক্ষ্য করেছি যে, আমি যখন বাগ পেয়ে যাচ্ছি তখন সিমুলেটারে টাইপ করতে আমি ম্যাক কীবোর্ডটি ব্যবহার করতে পারি না এবং আমাকে অনস্ক্রিন কীবোর্ড ব্যবহার করতে হবে, যা অত্যন্ত হতাশাব্যঞ্জক। আমার অ্যাপ্লিকেশনটিতে আমি কোনও কাস্টম দর্শন ব্যবহার করছি না, তাই আমি নিজে কখনও সিজি প্রসঙ্গ তৈরি বা ব্যবহার করি না।

1
এর জন্য সদ্ব্যবহারের জন্য ধন্যবাদ, আমি ভেবেছিলাম এটি আমার অ্যাপ্লিকেশনটি ছিল যা ভুল! তুমি যদিও পুরোপুরি ঠিক; এটি একটি পাঠ্য ক্ষেত্রে ডাবল-ক্লিক করা ছিল যা আমার জন্যও এই ত্রুটি ঘটাচ্ছে।
অ্যাশ

201

কি আপনি কোড এই লগ হয় যার ফলে জানতে আগ্রহী হন, আপনি করতে পারেন একটি সিম্বলিক ব্রেকপয়েন্ট যোগ উপর CGPostError


2
সিজিপোস্টেরার সম্পর্কে পরামর্শ দেওয়ার জন্য ধন্যবাদ আমি এটিতে একটি ব্রেকপয়েন্ট রেখেছি এবং দেখে মনে হচ্ছে যে আমি এই সমস্যার কারণ হতে কিছুই করছি না। আমার ক্ষেত্রে এটি মূল থ্রেডে ঘটছে তবে আমার কোডে নয়।
পল হেলার

10
ভোটিন এটি আপ কারণ, যদিও এটি এই নির্দিষ্ট ক্ষেত্রে সমাধান নয়, এটি প্রায়শই হাইলাইট করবে যেখানে দোষটি কোথায় রয়েছে, যখন এটি প্রোগ্রামারের নিজস্ব কোডের আওতায় থাকে।
অ্যাশ

27
এটি একটি দুর্দান্ত পরামর্শ। যারা প্রতীকী ব্রেকপয়েন্টগুলির সাথে পরিচিত নন বা কীভাবে তাদের এক্সকোডে যুক্ত করবেন, তাদের সম্পর্কে এটি অ্যাপলের ডক্টর। বিকাশকারী.এপলস.লাইবারি
টনি অ্যাডামস

এটি আমাকে সাহায্য করেছিল। আমার ক্ষেত্রে এটি আমার ওএস এক্স অ্যাপ্লিকেশনটিতে একটি এনএসগ্রাডিয়েন্ট যুক্ত করার বিষয়টি হাইলাইট করেছে।
অ্যারন ভেগ

1
মনে হচ্ছে একটি নির্দিষ্ট দৃশ্যের জন্য একটি ফ্রেম সেট করার আগে আমি আঁকছিলাম, ধন্যবাদ! :)
রিক ভ্যান ডের লিন্ডে

42

এই ধরণের ত্রুটি historতিহাসিকভাবে কোর গ্রাফিক্স ফাংশনগুলিতে কল করার ফলাফল যখন কোনও প্রসঙ্গের মধ্যে drawRectবা এর মধ্যে UIGraphicsBeginImageContextএবং যেমন কলগুলির মধ্যে বা এর মধ্যে প্রতিষ্ঠিত হয় নাUIGraphicsEndImageContext (যা শুরু হবে এবং একটি প্রসঙ্গ শেষ ভালো বা অন্যান্য UIKit ফাংশন)।

যদিও বিলোবাতাম ঠিক বলেছেন যে এই নির্দিষ্ট ত্রুটিগুলির ক্রমটি তার উত্তরে আইওএস bu বাগের রেফারেন্স হতে পারে। যদি আপনার আইওএস 6 টার্গেটগুলিতে এই ত্রুটিগুলি না দেখছে বা এই ব্যক্তিগত কাঠামোটি দ্রুত স্ক্যান করার পরে আপনি কোনও সন্দেহভাজনযুক্ত কোর গ্রাফিক্স কলগুলি খুঁজে না পান তবে এটি কেবল এই আইওএস 7 বাগ হতে পারে। ভাল ধরা, বিলোবাতুম!


আমার ব্যক্তিগত কাঠামোর মধ্যে একটি ভিউ আছে যা ড্রআরেক্ট বলে ect আমি উল্লিখিত পদ্ধতিগুলির মধ্যে সরাসরি কল করছি না, তবে আমার একমাত্র অনুমান যে এই শ্রেণীর কোডটি কোনওভাবে সম্পর্কিত। তবুও, যেমনটি আমি উল্লেখ করেছি, পূর্ববর্তী আইওএস-এর অধীনে সবকিছু সুচারুভাবে চালিত হয়।
Æ্লেক্স

সমাপ্তির স্বার্থে (এটি শীর্ষস্থানীয় গুগল ফলাফল), আমি লক্ষ করতে চাই যে ক্রিপ্টিক ত্রুটিটি OSX 10.11.3 এ অপরিবর্তিত রয়েছে - এবং রব যেমন বলেছেন, ড্রয়ারের বাইরে কোনও অঙ্কন ফাংশন রেখে বা অন্য কোনও প্রসঙ্গে- সম্পর্কিত ফাংশন।
সবুজ_রাত্রি

26
UIGraphicsBeginImageContext( size );
CGContextRef context = UIGraphicsGetCurrentContext();

নিশ্চিত করুন যে মাপের প্রস্থ বা মাপ.উত্তর 0 নয়,

আপনি সিজিপিস্টেররে চেক করতে প্রতীক ব্রেক ব্রেকপয়েন্ট যুক্ত করতে পারেন


সুতরাং… সিজিপিস্টআররে একটি সিম্বলিক ব্রেকপয়েন্ট যুক্ত করে, কেউ কীভাবে সেই বিন্দুতে আকারের দিকে তাকাতে পারে?
ক্রিস

আপনি কমান্ড + 6 দ্বারা "ডিবাগ নেভিগেশন দেখান" তে ফাংশন কল স্ট্যাকটি দেখতে পারেন। তারপরে আপনি গাছে ক্লিক করুন, তারপরে আপনি ভেরিয়েবলটি দেখতে আপনার ফাংশনে ফিরে যেতে পারেন।
lbsweek

হ্যাঁ, আমি এই চিত্রটি পর্যালোচনাটি বিজ্ঞপ্তি তৈরি করতে ইমেজভিউটি পেরিয়ে যাচ্ছিলাম, কিন্তু, এটির আকারটি শূন্য ছিল। অবশেষে 2 দিন পরে সমাধান হয়েছে: ডি।
জিতেশডব্লিউ

19

একটি সাধারণ ইউআইটিেক্সটফিল্ড (কীবোর্ডটি প্রদর্শিত হচ্ছে না এবং কনসোলে অনেকগুলি ভিন্ন অবৈধ প্রসঙ্গ ত্রুটি বার্তা) নিয়ে আমার এই সমস্যা ছিল। আমি কেবলমাত্র এসও-তে অন্য কোনও সমস্যার দিকে তাকিয়ে একটি কাজের সন্ধান পেয়েছি: সিএফবান্ডেল সার্টুআইফ্রেমওয়ার্ক.এক্সবান্ডেলের জন্য এক্সিকিউটেবল খুঁজে পাচ্ছি না

শুধু কর:

আইওএস সিমুলেটর> সামগ্রী এবং সেটিংস পুনরায় সেট করুন ... এ ক্লিক করুন এবং আবার চালান।

সমস্যাটি আর থাকবে না


16

আমার ক্ষেত্রে আমি এই কোডটিতে এই ত্রুটিগুলি পেয়েছি:

CAShapeLayer *shapeLayer = [CAShapeLayer layer];
UIBezierPath *path;

path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(0, 0)];
[path addLineToPoint:CGPointMake(size*2, 0)];
[path addLineToPoint:CGPointMake(size, size*2)];
[path closePath];
[path fill];

shapeLayer.path = path.CGPath;
shapeLayer.strokeColor = [[UIColor blackColor] CGColor];
shapeLayer.fillColor = color;
shapeLayer.lineWidth = width;

[self addSublayer:shapeLayer];

কিছু চিন্তাভাবনা এবং পরীক্ষার পরে আমি সমস্যাটি সনাক্ত করি - এটি ছিল এই কল:

[path fill];

যেমন আমি সনাক্ত করেছি - আমার কোডে এই কলটি প্রয়োজনীয় নয়, কারণ ভরাট অন্য উপায়ে করা হবে - তাই আমি কেবল এটিকে সরিয়ে ফেলি।


5

আমার এই একই সমস্যা ছিল এবং আমি কোয়ার্টজকোর / কোয়ার্টজকোর এইচটি আমদানি করতে ভুলে গেছি, এটি আমার এই সমস্যাটিকে এই ত্রুটিগুলির সাথে সমাধান করেছে।

    #import <QuartzCore/QuartzCore.h>

5

সরল উত্তর: সমস্যাটি হ'ল কারণ আপনি - (void)drawRect:(CGRect)rectএই পদ্ধতি ব্যতীত সিগ্রিকটেক্সট ইত্যাদির মতো কোর গ্রাফিক্স উপাদান ব্যবহার করেছেন ।

এখন দয়া করে আপনার কোডটি এই পদ্ধতিতে সরান। এবং এটি আপনাকে সতর্কতা / ত্রুটিগুলি দেবে।


4

আমি এই ত্রুটিটি পাচ্ছিলাম কারণ আমি একটি ইউআইসি কালার অবজেক্টটি এনএসএট্রিবিউটেড স্ট্রিংয়ের অভিধানে একটি ক্যাটেক্সটায়ার অবজেক্টে ব্যবহৃত হচ্ছিল হিসাবে একটি বৈশিষ্ট্য হিসাবে ব্যবহার করছিলাম। আমি সিজি কালারআরফ ধরে রাখতে অভিধানে পরিবর্তন করেছি এবং ত্রুটিটি চলে গেছে।

[wordAttributes setObject:(id)[UIColor whiteColor].CGColor forKey:(NSString*)kCTForegroundColorAttributeName];

2

প্রসঙ্গটি যেখান থেকে ফিরে এসেছে UIGraphicsGetCurrentContext()তা আমার ক্ষেত্রে হয়েছে NULLএবং আপনি যদি কোনও কিছুর জন্য এটি ব্যবহার করার চেষ্টা করেন তবে এই বার্তাটি উপস্থিত হয়। UIGraphicsPushContextকল করার আগে কনটেক্সটকে ধাক্কা দেওয়ার মতামতের দায়িত্ব drawRect:, যদি আপনি drawRect:তার পরিবর্তে সরাসরি কল করেন [view setNeedsDisplay]তবে প্রসঙ্গটি এখনও সেট না হওয়ার ঝুঁকি রয়েছে। আমার কুণ্ডলীটি হ'ল আইওএস 7 এর পূর্বে কনটেক্সটটি ভিউটির জন্য চাপানো হয়েছিল initএবং এখন আইওএস 7-এ প্রসঙ্গটি প্রথমবার বলা না হওয়া পর্যন্ত ধাক্কা দেয় না drawRect:। আমার সন্দেহ হয় যে কিছু ইউআইকিট কোড drawRect:সরাসরি কল করছে এবং এটি কারণেই যখন কোনও কাস্টম অঙ্কন করা হচ্ছে না তখনও কিছু কোড নিয়ে সমস্যা রয়েছে।

সমাধান (যদি কাস্টম অঙ্কন করা হয়):

  1. drawRect:সরাসরি কল করবেন না , ব্যবহার করুন [view setNeedsDisplay]বা আপনার যদি তাত্ক্ষণিকভাবে অঙ্কন ব্যবহারের প্রয়োজন হয়[view.layer draw]
  2. আপনার drawRect:প্রসঙ্গটি পাবেন তবে এটি বিবৃতিটির মূলের বাইরে ব্যবহার করবেন নাif (context) {<do drawing here>}

2

আক্রান্ত ভিউতে অটোলেআউট বন্ধ করার ফলে এমন কিছু ক্ষেত্রে আপনি যখন ইউআই উপাদান রাখছেন এবং সরিয়ে নিয়ে যাচ্ছেন (বিশেষত কাস্টমগুলি যা প্রোগ্রামক্রমে আঁকা হয়) কোনও দৃশ্যের মধ্যেই এই ত্রুটিটি সরে যায়। আমি যখন এই উপসর্গটি আবিষ্কার করেছি তখন আমি জেভিএফ্লোটলবেলডেক্সটফিল্ড ব্যবহার করছিলাম।


2

কিছু ক্ষেত্রে আপনার লাইনটি অন্তর্ভুক্ত করতে হতে পারে #import <QuartzCore/QuartzCore.h>


2

আমার কাস্টম CALayer বাস্তবায়নের অঙ্কনকন্টেক্সট (..) পদ্ধতিতে আমি এই ত্রুটিটি পেয়েছি। UIBezierPath ইউআইজিগ্রাফিকস গেটকোর্ন্টকন্টেক্সট () ব্যবহার করার চেষ্টা করে যা কাস্টম স্তরে ডিফল্টরূপে শূন্য থাকে। অনলাইন ডকুমেন্টেশন সুস্পষ্টভাবে এই ব্যাখ্যা -

আপনি যদি নিজের অঙ্কনটি করতে কোনও ইউআইভিউ অবজেক্টটি ব্যবহার না করেন তবে, আপনাকে অবশ্যই ইউআইজিগ্রাফিক্সপুষ্পকন্টেক্সট ফাংশনটি ব্যবহার করে স্ট্যাকের উপর একটি বৈধ প্রসঙ্গটি চাপতে হবে।

এই কোডটি যা শেষ পর্যন্ত আমার মন্তব্যে ইনলাইন দিয়ে কাজ করেছে (সুইফট কোড, তবে সমাধানটি নির্বিশেষে একই)

override func drawInContext(ctx: CGContext!) {  
    var path = UIBezierPath()

    // 1. Make sure you push the CGContext that was first passed into you.
    UIGraphicsPushContext(ctx)
    path.moveToPoint(CGPoint(x: 0, y: 0))
    path.addLineToPoint(CGPoint(x: 150, y: 150))
    var lineColor = UIColor.blueColor()
    lineColor.setStroke()
    path.lineWidth = 2
    path.stroke(
    // 2. Pop the context after you are done.
    UIGraphicsPopContext()
}

2

ক্যাপ ইনসেটগুলি সহ একটি নির্ভরযোগ্য চিত্র তৈরি করার সময় আমার ক্ষেত্রে আমার এই সতর্কতা ছিল। সমস্যাটি হ'ল আমি "আনপ্যাডড" জায়গায় কমপক্ষে 1 পিক্সেল ছাড়ছি না।

    UIImage *image = [UIImage imageNamed:@"name"];
    UIEdgeInsets edgeInsets = UIEdgeInsetsMake(20, 10, 20, 10);  //Problem here if the width is 20 or the height is 40
    image = [image resizableImageWithCapInsets:edgeInsets];

1
ঠিক একই সমস্যা ছিল। স্পষ্টতই আপনাকে কমপক্ষে 1 টি জায়গা ছেড়ে যেতে হবে যেখানে চিত্রটি প্রসারিত করতে পারে
রিবিটো

1

আমি নীচের কোড ব্যবহার করে প্রসঙ্গ থেকে UIImage তৈরি করছিলাম:

    UIGraphicsBeginImageContext (আকার);
    CGContextRef প্রসঙ্গ = UIGraphicsGetCurrentContext ();

    সিজি কনটেক্সটসেটফিল কালার উইথ কালার (প্রসঙ্গ, রঙ। সিজি কালার);
    CGContextFillRect (প্রসঙ্গ, (সিজিআরেক্ট) size। আকার = আকার});

    ইউআইআইমেজ * চিত্র = ইউআইজিগ্রাফিকস গেটআইমেজফ্রোমর্সিয়ারআইমেজকন্টেক্সট ();
    UIGraphicsEndImageContext ();

এইভাবে আমি ত্রুটি পেয়ে যাচ্ছিলাম।

সুতরাং আমি ডেরিভড ডেটা সামগ্রীটি সরিয়েছি, আমার এক্সকোডটি পুনরায় শুরু করেছি। এবং এটা কাজ করে.


তাহলে সমাধান কী?
গীক

1
@ গীক, আপডেট সমাধান ডেরিভেডডাটা সামগ্রী সরান এবং পুনরায় চালু করুন।
মিলিত

1

আমি একই সমস্যা আছে। আমার প্রকল্পে, আমি একটি টেক্সটফিল্ড তৈরি করার চেষ্টা করেছি এবং এটি আমার পিডিএফ ফাইলে যুক্ত করব। পুরাতন কোড:

- (void) drawInContext:(CGContextRef)context {
    //Otherwise we're upside-down
    CGContextSetTextMatrix(context, CGAffineTransformMake(1.0,0.0, 0.0, -1.0, 0.0, 0.0));

    CGContextSetTextDrawingMode(context, kCGTextFill); // This is the default
    [[UIColor blackColor] setFill]; // ***This is the problem ***

    CGFloat x = self.rect.origin.x;
    CGFloat y = self.rect.origin.y + self.font.pointSize;
    [self.text drawAtPoint:CGPointMake(x, y)
            withAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Arial" size:12]}];
}

এই সমস্যা সমাধানের পরে, কোডটি পরিবর্তন করা হয়েছে:

old:[[UIColor blackColor] setFill]; 

new:CGContextSetFillColorWithColor(context, [[UIColor blackColor] CGColor]);

আমি ইউআইকোলার সেটফিলে সমাধানটি কাজ করে না । এবং সাহায্যকারী ধন্যবাদ।


1

আমি কোড দিয়ে ত্রুটি পেয়েছি

UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:pointA];
[path addLineToPoint:pointB];
[path addLineToPoint:pointC];
[[UIColor colorWithHexString:@"EFEFEF"] set];
[path fill];
[path closePath];

CAShapeLayer *triangle = [CAShapeLayer layer];
triangle.fillColor = [UIColor colorWithHexString:@"EFEFEF"].CGColor;
triangle.path = path.CGPath;

return triangle;

এবং কোড অপসারণের পরে

[[UIColor colorWithHexString:@"EFEFEF"] set];
[path fill];

বিশ্ব চুপ করে গেল


0

আমার জন্য, উত্তরটি ছিল যে আমি অযৌক্তিকভাবে গ্রাফিক্স প্রসঙ্গে প্রকাশ করছিলাম drawRect:। সিজিপিস্টেররে প্রতীকী ব্রেকআপপয়েন্টটি আমাকে অপরাধীর দিকে ইঙ্গিত করেছিল।


0

আমি যেমন সেট করেছিলাম তেমনি এই ত্রুটিটি পেয়েছি

textfield.delegate = self

কোনও প্রতিনিধি রুটিন বাস্তবায়ন ছাড়াই। এই লাইনটি সরানো আমার জন্য সমস্যার সমাধান করেছে


0

একটি ইউআইটিেক্সটফিল্ডে আমার এই সমস্যাটি হয়েছিল যখন আমি কেবল স্থানধারক পাঠ্য সহ একটি ফাঁকা ক্ষেত্রের উপর স্পর্শ করেছিলাম। আমি ফাঁকা ক্ষেত্রগুলি অপসারণ করতে নিম্নলিখিত কাজটি ব্যবহার করেছি:

-(void)textFieldDidBeginEditing:(UITextField *)textField{

        textField.text=[@" " stringByAppendingString:textField.text];

        //other stuff here
}


-(BOOL)textFieldShouldReturn:(UITextField *)textField{

         if(textField.text.length>0){
             if([[textField.text substringToIndex:1] isEqualToString:@" "])
                 textField.text=[textField.text substringFromIndex:1];
         }
         //  other stuff here
}

0

আমার জন্য আমি এই ত্রুটিটি পেয়েছিলাম কারণ আমি সিজি কনটেক্সটআরফটি নীচে দেখানো হিসাবে প্রকাশ করছিলাম:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();

    // DRAW BACKGROUND CIRCLE
    CGContextSetFillColorWithColor(context, [[UIColor gray] colorWithAlphaComponent:0.6].CGColor);
    CGContextFillEllipseInRect(context, rect);

//    CGContextRelease(context);
}

রিলিজ সরানো সমস্যার সমাধান করেছে


0

আমি যখন ইউআইএসিটিভিটি সাবক্লাসে ক্রিয়াকলাপ চিত্র পদ্ধতিতে চিত্রটির নামটি ভুল টাইপ করেছি তখন আমি এটি পেয়েছি

- (UIImage *)activityImage
{
    return [UIImage imageNamed:@"img.png"];
}

সঠিক চিত্রটি টাইপ করা আমার জন্য এটি সমাধান হয়েছে।


0

সিমুলেটর থেকে অ্যাপটি আনইনস্টল করুন এবং আবার চালান


0

অন্যদের মতো যারা এখানে মন্তব্য করেছেন আমি যখন এই নিম্নলিখিতটি করতাম তখন আমি এই সতর্কতাটি পেয়ে যাচ্ছিলাম:

ফাঁকা পাঠ্য ক্ষেত্রে: ডাবল আলতো চাপুন, স্পর্শ করুন এবং ধরে রাখুন, দীর্ঘ একক ট্যাপ করুন।

এটি কেবল iOS 7.0.3 এ প্রভাবিত করে বলে মনে হচ্ছে

আমি চারপাশে একটি কাজ আবিষ্কার করেছি, আপনার পেস্টবোর্ডটি শূন্য না হলে সতর্কতা ট্রিগার করা হবে না।

সুতরাং আমি পাঠ্যফিল্ডডিডবেইনএডিটিংয়ে নিম্নলিখিতটি করেছি:

- (void)textFieldDidBeginEditing:(UITextField *)textField {

    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    if (pasteboard.string.length == 0) {

        pasteboard.string = @" ";

    }
}

আমি আইফোন 4 এস, 5 এবং 5 এস-তে আইওএস 7.0.3 এর জন্য সিমুলেটারে এটি পরীক্ষা করে দেখেছি এবং আর সতর্কতা পাচ্ছি না। আমি আইফোন 6 এবং 6 প্লাসে আইওএস 8 এর জন্য সিমুলেটারে এটিও পরীক্ষা করে দেখেছি তবে আমি বিশ্বাস করি না যে iOS 8 প্রভাবিত হয়েছে is

এই কাজটি আবিষ্কার করার আগে দু'দিন হতাশার মধ্য দিয়ে গিয়েছিল তাই আমি আশা করি আমার উত্তরটি তাদের মধ্যে যারা একই সমস্যা রয়েছে তাদের সহায়তা করবে।


0

আপনি যখন ইউআইবিজেয়ারপথ ব্যবহার করছেন এবং স্ট্রোকের জন্য রঙ সেট বা পূরণ করার সময় ত্রুটিটি ঘটে থাকে তবে সেট স্থানের কোডটি অন্য জায়গাগুলির চেয়ে ড্রয়ারেক্ট ফাংশনে রাখুন।


0

এটি হ্যাকি তবে এটি আমার পক্ষে কাজ করেছে।

আমি সেট আপ UIImageViewমধ্যে UITableViewCellএর init, এটি একটি আকার এবং সীমাবদ্ধতার দেব।

তারপরে আমার দৃষ্টিতে কন্ট্রোলার cellForRowAtIndexPathআমি এটি করি:

let img = PFImageView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
img.setImage(withFile: nil, defaultText: message.senderUsername)
cell.profileImageView?.image = img.image

এবং এটি ত্রুটি এড়ানো, তারপরে নীচে আমি ফাংশনটিতে তার জন্য আসল চিত্রটি সেট করি UIImageView। উপরের কোডটি একটি ভাল ডিফল্ট

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.