我有2個視圖控制器,在第一個我做無限循環重複計算。如何完全關閉視圖控制器的所有後臺工作,當模態呈現另一個
問題是,我想在展示第二個方法時關閉方法和與第一個方法相關的所有內容。此外,我符合MKMapViewDelegate
,每當用戶位置發生變化時,都會觸發該位置,在此處我開始後臺線程工作。
現在,當呈現其他視圖控制器,我想擺脫這一點,並打破所有正在執行的操作。
我試圖設置代表到零,但是當轉回到第一個方法返回,並說
"Collection <__NSArrayM: 0x17f9b100> was mutated while being enumerated."
這是我做的計算功能給出了碰撞,陣中擁有太多的對象,並需要大約10秒來完全檢查此方法。
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self makeCalculations];
});
}
-(void)makeCalculations {
BOOL okClicked = NO;
for(NSDictionary *item in array) {
NSInteger responseCode = [[item objectForKey:@"responseCode"] integerValue];
okClicked = (responseCode > 0);
if (okClicked) {
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"title" message:@"message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
alert.tag =10;
[alert show];
});
}
}
}
有沒有什麼線索,你能給我一個例子或建議嗎?
請包括你的一些代碼,或者這個問題是無法回答的。 – jrturton
請提供一些您的代碼。如果你正在使用循環,那麼你可以使用'break'循環內部或循環內的「if」檢查,允許循環運行,直到其他視圖控制器顯示。 – Ankush
編輯問題! – EridB