2012-04-10 26 views
1

有沒有辦法通過NSTimer向選擇器發送參數?iOS使用NSTimers向選擇器發送參數

myTimer =[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(removeTheNote:) userInfo:nil repeats:NO]; 

     - (void)removeTheNote:(NSString*)note 
    { 
     NSLog(@"Note %@ ----------- REMOVED!",note); 
    } 

我知道,使用:

myTimer =[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(removeTheNote:myNote) userInfo:nil repeats:NO]; 

不工作,所以我問,有沒有辦法做到這一點?

回答

10

您可以使用該userInfo參數:

myTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(removeTheNote:) userInfo:myNote repeats:NO]; 

但是,你將不得不修改removeTheNote如下:

- (void)removeTheNote:(NSTimer *)timer 
{ 
    NSString *note = timer.userInfo; 
    NSLog(@"%@", note); 
} 
+1

你的答案是正確的,但爲什麼你必須使用的NSTimer參數選擇器? – Adela 2015-09-16 14:35:22

相關問題