我有一類在sample.m其中我有以下方法來定義(樣品):的NSTimer選擇方法不獲取從另一個類訪問
-(NSInteger)refreshValue:(id)sender{
//Do some thing here and return value.
NSLog(@"Print something here");
return something;
}
-(IBAction)monitorValue:(id)sender {
NSLog(@"In here");
timer = [NSTimer scheduledTimerWithTimeInterval: 1
target: self
selector: @selector(refreshValue:)
userInfo: nil
repeats: YES];
}
現在我有另一個類,test.m.從test.m,我這樣做:
Sample *test = [Sample alloc]
[test monitorValue:(id)sender]
當我運行此代碼,我可以看到監視器值方法被調用。但是refreshValue方法永遠不會從monitorValue中調用,這正是我想要的。如果我從sample.m中調用monitorValue,那麼一切正常。從另一個對象調用時它不起作用。
任何想法?謝謝。
不知道它會幫助,但參數'scheduledTimerWithTimeInterval'從'1'到'1.0f'改變(這是一個NSTimeInterval - 或雙 - 值) 。另外,您是否每觸摸一次按鈕,都會啓動一個全新的計時器?你應該檢查一下'timer'是否爲空。 –
修正它: [test performSelectorOnMainThread:@selector(monitorValue :) withObject:nil waitUntilDone:NO]; 無論如何。 – ZionKing