我有Web服務,我想定期從我的iPhone應用程序中調用此服務,以在應用程序運行時每隔1分鐘收集一次數據。如何在後臺iphone中定期調用webservice?
我使用NSTimer調用調用此服務的函數,但我第一次調用完成解析來自第一個調用的數據之前,什麼是酸,繼續進行新的調用。 那我該怎麼做?
{
NSDate *d = [NSDate dateWithTimeIntervalSinceNow: 60.0];
NSTimer *t = [[NSTimer alloc] initWithFireDate: d
interval: 10
target: self
selector:@selector(calltimer:)
userInfo:nil repeats:YES];
NSRunLoop *runner = [NSRunLoop currentRunLoop];
[runner addTimer:t forMode: NSDefaultRunLoopMode];
[t release];
}
-(void)calltimer :(id)sender
{
NSLog(@"yessss");
if(!myQueue)
{
myQueue = dispatch_queue_create("supperApp.user1025523.com", NULL);
dispatch_async(myQueue, ^{
[self getData];
});
}
}
-(void)getData
{
webserviceCaller* wsCaller = [[webserviceCaller alloc]initWithTarget:self selector:@selector(parsINVData:)];
[wsCaller getINventoryData:self.username];
[wsCaller release];
}
-(void) parsINVData:(InvData*) ret
{
//save return data in global variable
}
我用NSMutableURLRequest發起請求參數和NSURLConnection的啓動連接,這樣,爲什麼調用Web服務不火。
更清潔將是不設置您的計時器重複。然後,當您收到或失敗(在NSURLConnection委託方法中)時,您可以重新安排計時器。 – EricLeaf
這段代碼工作正常嗎? – Ramz