我有一个 NSTimer,它每 25 秒发出一个 HTTP 请求。这工作正常,但是当我转到另一个 ViewController 然后返回时。它可能不起作用。我做错了什么?
-(void)viewDidAppear:(BOOL)animated {
timer = [NSTimer timerWithTimeInterval:26.0 target:self selector:@selector(sendRequestToGetData:) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
}
NSTimer
-(void)sendRequestToGetData:(NSTimer *)timer
{
NSDictionary *headers = @{},
*parameters = @{};
UNIHTTPJsonResponse *response = [[UNIRest get:
^(UNISimpleRequest* request) {
[request setUrl:
@"http://localhost/getfixture.php/fixtures"
];
[request setHeaders:headers];
[request setParameters:parameters];
}] asJson];
NSData* rawBody = [response rawBody];
jsonResult = [NSJSONSerialization JSONObjectWithData: rawBody
options: NSJSONReadingMutableContainers
error: nil];
}
最佳答案
试试这个:
NSTimer *myTimer;
-(void)viewDidAppear:(BOOL)animated {
myTimer = [NSTimer scheduledTimerWithTimeInterval:26.0
target:self
selector:@selector(sendRequestToGetData:)
userInfo:nil
repeats:YES];
}
- (void)viewDidDisappear:(BOOL)animated{
[myTimer invalidate];
myTimer=nil;
}
关于ios - NSTimer,当我回到 ViewController 时不会启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22485416/