कैसे मुझे यकीन है कि मेरी समारोह केवल मुख्य थ्रेड पर चलाया जाता है सुनिश्चित कर सकते हैं समारोह मुख्य थ्रेड पर चलाता करें?
इस तरह एक समारोह माना जाता है 'बुरे' (यह UI तत्व अद्यतन करता है)?केवल
-(void)updateSomethingOnMainThread {
if (![[NSThread currentThread] isEqual:[NSThread mainThread]])
[self performSelectorOnMainThread:_cmd withObject:nil waitUntilDone:NO];
else {
// Do stuff on main thread
}
}
मैं इसे इस तरह लिखा था एक दूसरे समारोह होने से बचाने के लिए, शुरू मैं इसे इस तरह था:
-(void)updateSomethingOnMainThread_real {
// Do stuff on main thread
}
-(void)updateSomethingOnMainThread {
[self performSelectorOnMainThread:@selector(updateSomethingOnMainThread_real) withObject:nil waitUntilDone:NO];
}
संभावित डुप्लिकेट [क्या गोलाकार विधि कॉलिंग की अनुमति है?] (Http://stackoverflow.com/questions/7706329/is-circular-method-calling-allowed) – ughoavgfhw