[英]What is the best way stop Loop when viewDisappear
我的目標是當viewDidLoad以頻率0,8秒開始(刷新)並且在視圖消失后停止(刷新)。
在viewDidLoad調用(refres)函數:
@proptery disAppear;
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"TeklifVer-viewDidLoad()");
self.disAppear = NO;
[self refresh];
}
- (void)viewDidDisappear:(BOOL)animated {
NSLog(@"viewDiddisappear");
self.disAppear = YES;
}
on(refresh)函數調用(refresh): [self performSelector:@selector(refresh) withObject:nil afterDelay:0.8];
如果不是disAppear。
- (void) refresh
{
NSLog(@"refresh");
...
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSDictionary * responseDictionary = (NSDictionary *)responseObject;
if (!self.disAppear) {
...
TeklifVerModel * teklifVerModel = [[TeklifVerModel alloc] initWithDictionary:responseDictionary];
//init labels
...
@try {
if (teklifVerModel.ihaleStatus == 2) {
self.nextPage = true;
} else if (teklifVerModel.ihaleStatus == 5) {
self.ihaleListesi = true;
}
}
@catch (NSException *exception) {
NSLog(@"error: %@", exception);
}
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error: %@", error);
}];
[operation start];
if (self.nextPage) {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
IhaleViewController * ihale = [storyboard instantiateViewControllerWithIdentifier:@"ihaleViewController"];
[self presentViewController:ihale animated:YES completion:nil];
} else if (self.ihaleListesi) {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
IhaleListesiViewController * ihaleListesi = [storyboard instantiateViewControllerWithIdentifier:@"ihaleListesi"];
[self presentViewController:ihaleListesi animated:YES completion:nil];
} else if(!self.disAppear) {
[self performSelector:@selector(refresh) withObject:nil afterDelay:0.8];
}
}
日志
2015-07-03 15:51:24.918 uztb[729:129628] refresh
2015-07-03 15:51:25.189 uztb[729:129628] viewDidDisappear
2015-07-03 15:51:25.720 uztb[729:129628] refresh
2015-07-03 15:51:26.522 uztb[729:129628] refresh
2015-07-03 15:51:27.324 uztb[729:129628] refresh
2015-07-03 15:51:28.127 uztb[729:129628] refresh
我的問題是當viewDisapper仍然執行某些(刷新)時。 有時(刷新)永遠不會停止。 所以當這個視圖再次加載多個(刷新)線程時執行
問題:viewDisappear停止(刷新)線程的最佳方法是什么?
嘗試並在viewDidDisappear
cancelPerformSelectorsWithTarget
方法。 更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.