2012-05-26 24 views
32

जब मेरा ऐप शुरू होता है तो मुझे एक विधि कॉल करने की आवश्यकता होती है और फिर प्रत्येक 5 सेकंड में एक ही विधि को कॉल करें।तुरंत एनएसटीमर को कैसे ट्रिगर करें?

मेरे कोड बहुत सरल है:

// Call the method right away 
[self updatestuff:nil] 

// Set up a timer so the method is called every 5 seconds 
timer = [NSTimer scheduledTimerWithTimeInterval: 5 
              target: self 
             selector: @selector(updatestuff:)  
             userInfo: nil 
             repeats: YES]; 

वहाँ टाइमर तो यह ट्रिगर सही दूर है और फिर हर 5 सेकंड के लिए एक विकल्प है?

उत्तर

65

NSTimer-fire, [timer fire]; वह है जो आप खोज रहे हैं।

वह समय विलंब को खारिज करने वाले टाइमर को आग/तुरंत कॉल करेगा।

13

आप टाइमर शेड्यूल नहीं कर सकते हैं और तुरंत कोड की उसी पंक्ति में ईवेंट को आग लग सकते हैं। तो आपको इसे कोड की 2 पंक्तियों में करना है।

पहले, टाइमर अनुसूची, तो तुरंत अपने टाइमर पर 'आग' कहते हैं:

timer = [NSTimer scheduledTimerWithTimeInterval: 5 
             target: self 
            selector: @selector(updatestuff:)  
            userInfo: nil 
            repeats: YES]; 
[timer fire]; 

जब आग कहा जाता है, समय अंतराल है कि आपके टाइमर आग इंतजार कर रहा है क्योंकि यह सिर्फ भाग गया और फिर रीसेट हो जाएगा, इसके बाद नामित अंतराल पर चलना जारी रहेगा - इस मामले में, हर 5 सेकंड में।

3

आप टाइमर आरंभ और एक ही पंक्ति में यह आग कर सकते हैं:

[(checkStatusTimer = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(checkStatusTimerTick:) userInfo:nil repeats:YES]) fire]; 
+1

बहुत अच्छा वाक्य रचना! – loretoparisi

संबंधित मुद्दे