Objective-C Language
NSTimer
खोज…
एक टाइमर बनाना
यह 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"]);
}