1
我有一個應用程序,我需要使用StartMonitoringForRegion。 當我把下面的代碼放在應用程序didFinishLaunchingWithOptions它的工作。startMonitoringForRegion不總是工作
[loc startUpdatingLocation];
CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(21.456372,39.287972);
CLRegion* region = [[CLRegion alloc] initCircularRegionWithCenter:coord radius:200 identifier:@"C"];
[self.locationManager startMonitoringForRegion:region desiredAccuracy:50];
但是當我在另一個視圖中使用相同的代碼,它不工作! 我嘗試使用下面的代碼來執行主線程的代碼:
if (![NSThread isMainThread])
{
[self performSelectorOnMainThread:@selector(MonitorRegion:) withObject:pr waitUntilDone:NO];
return;
}
,但它仍然無法正常工作!
爲什麼代碼在didFinishLaunchingWithOptions中工作,而不是在其他視圖中工作!
是否有任何情況下區域監視器可能無法正常工作?
真的嗎?聽起來像其他事情正在發生。如果視圖需要可見,那麼區域監控的重點是什麼? –
是的,應該有一個「擦循環線程」檢查這兩個鏈接http://stackoverflow.com/a/8108274/857865和https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/多線程/ RunLoopManagement/RunLoopManagement.html#// apple_ref/DOC/UID/10000057i-CH16-SW1 – Kassem