2012-12-10 10 views
5

कुछ कहते हैं कि किसी को मुख्य थ्रेड में यूआईएप्लिकेशंस का उपयोग करना चाहिए, लेकिन मुझे यह ऐप्पल के दस्तावेज़ में दस्तावेज नहीं दिखता है। तो क्या कोई मुझे बता सकता है कि क्या एक अलग धागे में यूआईएप्लिकेशन का उपयोग करना सुरक्षित है? यदि यह सुरक्षित नहीं है, तो यह कहां दस्तावेज है?आईओएस: मुख्य थ्रेड के अलावा धागे में यूआईएप्लिकेशन के तरीकों को सुरक्षित कर रहा है?

संपादित करें: मैं उन तरीकों जो स्थानीय अधिसूचना में हेरफेर पर ध्यान केंद्रित कर रहा हूँ।

+0

यदि आप उन तरीकों के बारे में अधिक विशिष्ट थे जो आप उपयोग करना चाहते थे तो इससे मदद मिलेगी। – rmaddy

+0

@rmaddy धन्यवाद, मैंने उन तरीकों को जोड़ा है जिनकी मैं जांच कर रहा हूं। – CarmeloS

उत्तर

5

अधिकांश UIKit कक्षाएं थ्रेड सुरक्षित नहीं हैं। डब्ल्यूडब्ल्यूडीसी, आदि में इसकी लंबाई पर चर्चा की गई है, लेकिन यह बहुत अच्छी तरह से प्रलेखित नहीं है। सबसे अच्छा मुझे मिल सकता है TN2109 जो बार-बार चर्चा करता है कि द्वितीयक धागे से यूआईकिट को कॉल करने की अनुमति नहीं है।

ध्यान दें कि इस नियम के लिए कई दस्तावेज अपवाद हैं। उदाहरण के लिए, beginBackgroundTaskWithExpirationHandler और यूआईएप्लिकेशंस पर संबंधित विधियों को स्पष्ट रूप से गैर-मुख्य धागे से कॉल करने के लिए सुरक्षित के रूप में लेबल किया गया है। (यह भी संकेत मिलता है कि UIApplication के अन्य तरीके हैं नहीं सुरक्षित, अन्य थ्रेड से कॉल करने के बाद से इन विशेष रूप से बाहर कहा जाता है।)

वहाँ इस नियम के अन्य अपवाद के साथ-साथ, ज्यादातर ड्राइंग (UIImage को शामिल कर रहे हैं और UIColor उदाहरण कम से कम iOS 4 के रूप में थ्रेड-सुरक्षित हैं)।

0

यूआईएप्प्लिकेशन यूआईआरस्पॉन्डर का उप-वर्ग है और यूआईकिट फ्रेमवर्क का हिस्सा है। तो मुझे लगता है कि यह थ्रेड सुरक्षित नहीं है क्योंकि यह दस्तावेज है कि UIKit कक्षाएं थ्रेड सुरक्षित नहीं हैं।

इसके अलावा इसमें विधियां भी हैं - सेटस्टैटसबारऑरिएंटेशन: एनिमेटेड :, जो सभी यूआई आधारित हैं और उनको मुख्य धागे की तुलना में किसी अन्य थ्रेड में निश्चित रूप से नहीं कहा जा सकता है।

+0

जब आप यूआई में हेरफेर करते हैं तो यह मुख्य थ्रेड पर होना चाहिए, लेकिन सभी यूआईएप्लिकेशन विधियों ने यूआई में हेरफेर नहीं किया है। उन मामलों में अन्य धागे पर प्रयोग ठीक है। – sosborn

+0

मैंने अपना प्रश्न संपादित कर लिया है, मैं उन तरीकों पर ध्यान केंद्रित कर रहा हूं जो स्थानीय अधिसूचनाओं में हेरफेर करते हैं। – CarmeloS

संबंधित मुद्दे