2013-03-02 9 views
9

मैंकैसे को रोकने के लिए/NSTimer

[NSTimer scheduledTimerWithTimeInterval:0.1f 
            target:self 
           selector:@selector(update) 
           userInfo:nil 
           repeats:YES]; 

उपयोग कर रहा हूँ अमान्य मैं इस घड़ी एक बुला बंद करना चाहते हैं।

viewDidDisappear 

मैं यह कैसे कर सकता हूं? अमान्य?

उत्तर

26

ज फ़ाइल में NSTimer *myTimer घोषित है। टॉम के रूप में

असाइन उदाहरण इस

myTimer = [NSTimer scheduledTimerWithTimeInterval:0.1f 
            target:self 
            selector:@selector(update) 
            userInfo:nil 
            repeats:YES]; 

बंद करो की तरह कहा और रोकने या NSTimer अमान्य पहले आप विश्व स्तर पर में NSTimer के लिए उदाहरण बनाने के लिए के लिए यह

- (void) viewDidDisappear:(BOOL)animated 
{ 
    [myTimer invalidate]; 
    myTimer = nil; 
} 
+0

क्या शून्य आवश्यक है? या बस सक्रिय रूप से स्मृति को साफ करने की कोशिश कर रहे हैं? – Kevin

+0

हां यह आवश्यक है। और यह स्मृति को भी साफ करता है। –

+0

मुझे स्मृति मिलती है, लेकिन इसकी आवश्यकता क्यों है? – Kevin

1

हां, आप NSTimer की उदाहरण विधि का उपयोग करेंगे।

बेशक, ऐसा करने के लिए, आप, NSTimer उदाहरण एक इवर या आपके विचार नियंत्रक की संपत्ति में [NSTimer scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:] से लौटे बचाने के लिए ताकि आप viewDidDisappear में उस तक पहुँच सकते होगा।

1

invalidateNSTimer की विधि बंद टाइमर

- (void) viewDidDisappear:(BOOL)animated 
{ 
     [super viewDidDisappear:animated]; 
     [self.timer invalidate]; 
     self.timer = nil; 
} 

के लिए उपयोग आप तो चाप नहीं कर रहे हैं मत भूलना [self.timer release];

1

का उपयोग कर अमान्य।

Timer=[NSTimer scheduledTimerWithTimeInterval:0.1f 
            target:self 
           selector:@selector(update) 
           userInfo:nil 
           repeats:YES]; 
उसके बाद

इस तरह की कोशिश,

if (Timer != nil) { 

      [Timer invalidate]; 
      Timer = nil; 

     } 
4

प्रयास करें इस

ViewController ज

NSTimer *timer; 

viewcontroller.m

timer = [NSTimer scheduledTimerWithTimeInterval:1 
             target:self 
             selector:@selector(pollTime) 
             userInfo:nil 
             repeats:YES]; 


    - (void) viewDidDisappear:(BOOL)animated 
    { 
     [super viewDidDisappear:animated]; 
     [timer invalidate]; 
    } 
संबंधित मुद्दे