मैं डिस्क पर संग्रहीत करने के लिए छोटी टाइल छवियां बना रहा हूं और उपयोगकर्ता को प्रदर्शित किया गया हूं।पृष्ठभूमि धागे पर एक छवि के लिए UIVIew प्रस्तुत करने के लिए सुरक्षित तरीका?
- एक ViewController कि यूआई मैं परदे पर
- ViewController से दृश्य प्राप्त करें और डिस्क पर
- यह सहेजें यह से एक छवि प्रस्तुत करना दिखाना चाहते हैं का प्रतिनिधित्व करता है बनाएँ और: यहाँ ऐसा करने के लिए अपने मौजूदा प्रक्रिया है इसे बाद में ऑनस्क्रीन प्रदर्शित करें
जब मैं व्यू कंट्रोलर के दृश्य तक पहुंचने का प्रयास करता हूं तो मैं क्रैश हो रहा हूं। जब मैंने इस ऑनलाइन शोध करने की कोशिश की, तो मुझे पृष्ठभूमि में दृश्य बनाने के लिए सुरक्षित है या नहीं, इस पर विवादित परिणाम मिल रहे हैं। मैं पढ़ रहा हूं कि UIGraphicsGetCurrentContext कॉल थ्रेड सुरक्षित होना चाहिए, लेकिन शायद पृष्ठभूमि थ्रेड पर UIView तक नहीं पहुंच रहा है? मैं आईओएस 4 और उसके बाद के संस्करण के लिए ऐप लिख रहा हूं। यहाँ कोड मैं का उपयोग कर रहा है (टाइल ViewController है):
CGSize size = CGSizeMake(20.0f, 30.0f);
UIGraphicsBeginImageContext(size);
[tile.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
दुर्घटना तब होता है जब टाइल (EXC_BAD_ACCESS) पर .view संपत्ति का उपयोग करने की कोशिश कर रहा। यूआई को लॉक करने से रोकने के लिए पृष्ठभूमि में एक छवि को दृश्य प्रस्तुत करना है क्योंकि प्रक्रिया करने के लिए बहुत सारी टाइलें हैं।
क्या ऐसा करने का कोई सुरक्षित तरीका है?
क्या आपको कभी इसका कोई अच्छा समाधान मिला है? –
मैं एक ही दुर्घटना में भाग गया। [ऐप्पल के दस्तावेज़ीकरण] के आधार पर (http://developer.apple.com/library/ios/#qa/qa1714/_index.html), 'renderInContext' को एक अलग थ्रेड पर इस्तेमाल किया जा सकता है। हालांकि, हकीकत में, यह रहस्यमय रूप से दुर्घटनाग्रस्त हो जाता है। क्या किसी को इस समस्या का समाधान मिला? – Howy
क्या आपको इसके लिए कोई समाधान मिला, मार्क? –