मैंने ensureInMainThread नामक एक छोटी परिभाषा लिखी है (और मैं इसे थोड़ा सा उपयोग करता हूं)। हालांकि, मुझे यकीन नहीं है कि कौन सा उपयोगकर्ता इंटरफ़ेस विधियां को मुख्य थ्रेड पर कहा जा रहा है। setNeedsDisplay
और setNeedsLayout
के बारे में क्या? आईओएस 5.x में मुख्य धागे पर बुलाए जाने वाले तरीकों के लिए अंगूठे का नियम क्या है?मुख्य थ्रेड पर क्या होना चाहिए?
इन सवालों से संबंधित हैं (कुछ कम गुणवत्ता सवाल और जवाब, और कुछ बहुत मामले विशिष्ट), लेकिन मैं एक व्यापक, एकल अच्छा जवाब चाहते हैं:
- UIView setNeedsDisplay Not on main thread?
- Does UIView's -drawRect: have to be called on the main thread?
- Make UIImage From UIView but NOT in the main thread
ब्रावो, हमेशा +1 के रूप में, ब्रैड लार्सन धन्यवाद। यही वह जवाब है जिसे मैं ढूंढ रहा था (इसे कल्पना करने में सक्षम होने के बिना)। क्या आप 'setNeedsDisplay' और' setNeedsLayout' पर टिप्पणी कर सकते हैं, और क्या आप किसी अन्य थ्रेड से सुरक्षित रूप से 'UILabel' पर एक स्ट्रिंग समायोजित कर सकते हैं? –
@Yar - मेरा मानना है कि '-setNeedsDisplay' सुरक्षित है, संदर्भ में ड्राइंग के आसपास सुरक्षा के कारण, लेकिन मुझे' -setNeedsLayout' के बारे में निश्चित नहीं है। मेरा मानना है कि उत्तरार्द्ध सुरक्षित नहीं हो सकता है, क्योंकि यह ड्राइंग से निपट नहीं रहा है, बल्कि इसके बजाय विचारों और परतों की स्थिति है। मुझे लगता है कि यूलाबेल का टेक्स्ट ड्राइंग सुरक्षित होना चाहिए, लेकिन मैंने इसे स्वयं परीक्षण नहीं किया है। –