अनुसरण स्रोत का हिस्सा है। यह शेड्यूल विधि को तीन बार कॉल करता है।

मैं एक 2) शेड्यूल को अनशेड्यूल करना चाहूंगा।

एक चुनी हुई अनुसूची पद्धति को कैसे अनिर्धारित करें?

-(id) init
{ 
    if( (self=[super init] ))
    { 
        int_count=0;
        [self schedule:@selector(displayOne) interval:1.0]; 1) schedule
        [self schedule:@selector(displayOne) interval:2.0]; 2) schedule
        [self schedule:@selector(displayOne) interval:1.5]; 3) schedule
    }
    return self;
}
0
S.J. Lim 15 नवम्बर 2011, 01:13

3 जवाब

सबसे बढ़िया उत्तर

एक ही विधि को कॉल करने वाले एकाधिक चयनकर्ताओं को शेड्यूल करने का वास्तव में कोई मतलब नहीं है। यदि आप अपनी कंसोल विंडो में देखते हैं तो आपको यह कहते हुए एक संदेश दिखाई देगा:

CCScheduler#scheduleSelector. Selector already scheduled. Updating interval from: 1.00 to 2.00

CCScheduler#scheduleSelector. Selector already scheduled. Updating interval from: 2.00 to 1.50

आप क्या कर सकते हैं इस तरह के विभिन्न विधि नामों के साथ चयनकर्ता को शेड्यूल करें:

[self schedule:@selector(displayOne) interval:1.0]; 1) schedule
[self schedule:@selector(displayTwo) interval:2.0]; 2) schedule
[self schedule:@selector(displayThree) interval:1.5]; 3) schedule

और displayTwo विधि में यह स्वयं को इस प्रकार अनिर्धारित करता है:

[self unschedule:@selector(displayTwo)];
2
ms83 15 नवम्बर 2011, 02:15
आपकी रुचि के लिए आपका धन्यवाद। :-डी
 – 
S.J. Lim
15 नवम्बर 2011, 02:19

मुझे लगता है कि डिस्प्लेऑन फ़ंक्शन का उपयोग करने के बजाय आपको शेड्यूलर को 3 अलग-अलग कार्यों में अलग करना होगा।

3 अलग-अलग कार्यों के साथ, आप शेड्यूल न किए गए फ़ंक्शन का उपयोग करने में सक्षम होंगे। अभी, आप या तो उन सभी का शेड्यूल रद्द कर सकते हैं, या उन सभी को चालू छोड़ सकते हैं।

   [self unschedule:@selector(test1)];
0
aporat 15 नवम्बर 2011, 02:24

अनिर्धारित वर्तमान चल रहे चयनकर्ता के लिए आप _cmd कीवर्ड के रूप में कर सकते हैं

[self unschedule:_cmd];
0
Harry 16 अक्टूबर 2013, 08:41