खोज…


एक टाइमर बनाना

यह doSomething विधि को self से 5.0 सेकंड में कॉल करने के लिए एक टाइमर बनाएगा।

[NSTimer scheduledTimerWithTimeInterval:5.0
         target:self 
         selector:@selector(doSomething) 
         userInfo:nil 
         repeats:NO];

repeats पैरामीटर को false/NO सेट करना इंगित करता है कि हम टाइमर को केवल एक बार फायर करना चाहते हैं। यदि हम इसे true/YES सेट करते हैं, तो यह मैन्युअल रूप से अमान्य होने तक हर पाँच सेकंड में आग लगा देगा।

एक टाइमर अमान्य है

[timer invalidate];
timer = nil;

यह टाइमर को फायरिंग से रोक देगा। टाइमर थ्रेड में बनाए गए थ्रेड से बुलाया जाना चाहिए, Apple के नोट्स देखें :

आपको यह संदेश उस थ्रेड से भेजना होगा जिस पर टाइमर स्थापित किया गया था। यदि आप इस संदेश को किसी अन्य थ्रेड से भेजते हैं, तो टाइमर से जुड़े इनपुट स्रोत को इसके रन लूप से हटाया नहीं जा सकता है, जो थ्रेड को ठीक से बाहर निकलने से रोक सकता है।

यह चल रहा है या नहीं, यह जांचने के लिए nil सेट करने से आपको मदद मिलेगी।

if(timer) {
    [timer invalidate];
    timer = nil;
}

//Now set a timer again.

मैन्युअल रूप से एक टाइमर फायरिंग

[timer fire];

fire पद्धति को कॉल करने से एक NSTimer उस कार्य को करने का कारण बनता है जो आमतौर पर एक शेड्यूल पर किया जाता था।

एक गैर-दोहराए जाने वाले टाइमर में , यह स्वचालित रूप से टाइमर को अमान्य कर देगा। अर्थात्, समय अंतराल से पहले fire परिणामस्वरूप केवल एक आह्वान होगा।

एक दोहराए जाने वाले टाइमर में , यह बस सामान्य शेड्यूल को बाधित किए बिना कार्रवाई को आमंत्रित करेगा।

टाइमर में जानकारी संग्रहित करना

टाइमर बनाते समय, आप उस जानकारी को शामिल करने के लिए userInfo पैरामीटर सेट कर सकते हैं जिसे आप टाइमर के साथ कॉल करने वाले फ़ंक्शन को पास करना चाहते हैं।

उक्त फ़ंक्शन में एक पैरामीटर के रूप में टाइमर लेकर, आप userInfo संपत्ति तक पहुंच सकते हैं।

NSDictionary *dictionary = @{
                             @"Message" : @"Hello, world!"
                            }; //this dictionary contains a message
[NSTimer scheduledTimerWithTimeInterval:5.0
     target:self 
     selector:@selector(doSomething) 
     userInfo:dictionary
     repeats:NO]; //the timer contains the dictionary and later calls the function

...

- (void) doSomething:(NSTimer*)timer{
    //the function retrieves the message from the timer
    NSLog("%@", timer.userInfo["Message"]);
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow