[英]NSTimer, wont start when i go back to the ViewController
我有一個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;
}
您是否不應該從viewdiddisappear中的運行循環中刪除計時器? 從另一個視圖返回后,可能再次添加它會造成問題。
我將使用viewWillAppear
。 viewDidLoad
是您必須做一次的事情。 每當出現視圖時,都會調用viewWillAppear
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.