मुझे यह कहने के लिए एक सहेजने की ज़रूरत है: "आईओएस, मैं चाहता हूं कि यह विधि a.s..p. को निष्पादित करे, लेकिन इस रन लूप पुनरावृत्ति में नहीं। अगले में जल्द से जल्द, लेकिन कृपया इस में नहीं। धन्यवाद।" धारणा है कि -doSomeOtherThings
हमेशा -doSomethingInNextRunLoop
से पहले प्रदर्शन किया जाएगा के साथविधि को कैसे कॉल करें as.s.a.p. लेकिन अगले रन लूप पुनरावृत्ति में जल्द से जल्द?
[self performSelector:@selector(doSomethingInNextRunLoop) withObject:nil afterDelay:0];
[self doSomeOtherThings];
:
अभी मैं हमेशा इसे इस तरह कर रहा हूँ।
प्रलेखन कहते हैं:
निर्दिष्ट 0 की देरी जरूरी चयनकर्ता तुरंत प्रदर्शन किया जा करने के लिए कारण नहीं है। चयनकर्ता अभी भी थ्रेड के रन लूप पर कतारबद्ध है और जितनी जल्दी हो सके प्रदर्शन किया है।
तो मूल रूप से यह हो सकता है कि विधि तुरंत बुलाया जाता है के रूप में अगर मैं सिर्फ एक सीधा संदेश भेजा था, -doSomethingInNextRunLoop
के कारण -doSomeOtherThings
से पहले निष्पादित किया जाना है?
मैं पूरी तरह से कैसे सुनिश्चित कर सकता हूं कि इसे as.s.a.p. कहा जाएगा। लेकिन कभी भी इस रन लूप पुनरावृत्ति में कभी नहीं?
शब्द को स्पष्ट करने के लिए: रन लूप के साथ मेरा मतलब मुख्य धागा है, और पुनरावृत्ति जिसमें सभी विधियों को तब तक वापस जाना होगा जब तक कि नए कार्यक्रमों के लिए थ्रेड तैयार न हो जाए।
शानदार! इसे आसान बनाने के लिए एक श्रेणी समझ में आ जाएगी। – openfrog