我有网络服务,我想定期从我的 iPhone 应用程序调用此服务,以便在应用程序运行时每 1 分钟兑现一次数据。
我使用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 服务的调用没有触发。