2012-02-01 135 views
0

是否可以在iOS中調用某個函數一定的時間間隔?在iOS中每5秒鐘調用一次函數

{ 
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(serverConnect) userInfo:nil repeats:YES]; 
    } 

有沒有其他替代方案?

服務器連接功能如下:

-(void)serverConnect{ 

NSMutableURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@MYURL] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:15.0]; 

NSURLConnection *connection= [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

if(connection){ 

    NSLog(@"connected"); 
}else{ 
    // 

} 

它引發錯誤: - [TUTViewController serverConnect:]:無法識別的選擇發送到實例0x907ef20

+0

這幾乎是做到這一點。全球化'NSTimer',你可以在其他地方無效,如果你需要的話。 – MobileOverlord 2012-02-01 01:52:28

+0

這就是你如何做一個重複計時器,但它會每隔100秒運行一次。這是你真正想要的嗎? – jsd 2012-02-01 01:52:28

+0

我改變了時間間隔並添加了被調用的函數。 – 2012-02-01 02:01:04

回答

2

的誤差指示的問題。它顯示'serverConnect:' - 末尾的冒號表示有一個參數。你的serverConnect沒有參數...因此,這個問題。它需要看起來像:

- (void)serverConnect:(NSTimer*)theTimer { 
    ... 
} 
+0

但我不使用該計時器,只是調用該函數。我的想法是每5秒連接一次服務器。沒什麼。它仍然適用? – 2012-02-01 02:21:54

+0

函數必須採用參數,無論您是否使用它。 NSTimer文檔可以證實這一點。 – 2012-02-01 05:37:04