所以,首先是堆栈溢出问题,但长时间读者;)
我的LocationManager设置在到达didUpdateLocations时会更改回默认值。我在viewDidLoad中设置了一个观察者以及一些默认值。我还在其他任何事情之前分配,启动和设置locationManager的委托。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(settingsDidChange:)
name:NSUserDefaultsDidChangeNotification
object:nil];
NSMutableDictionary *defaultsDictionary = [[NSMutableDictionary alloc] init];
[defaultsDictionary setObject:@(kCLLocationAccuracyNearestTenMeters) forKey:[SettingKeys LocationTrackingAccuracyPrefs]];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDictionary];
以下是正在观察的settingsDidChange以及我尝试设置locationManager的desiredAccuracy的位置。
- (void)settingsDidChange:(NSNotification *)notification
{
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
CLLocationAccuracy desiredAccuracy = [settings doubleForKey:[SettingKeys LocationTrackingAccuracyPrefs]];
locationManager.desiredAccuracy = desiredAccuracy;
}
在一个单独的“设置”视图中,我正在更改desiredAccuracy的值,该值似乎在转到didUpdateLocations之前一直存在。然后无论我把它设置为什么它似乎恢复(或永远不会改变)到" Best"作为理想的精确度。我不确定我在这里失踪了什么......我希望所有人都能引导我朝着正确的方向前进。谢谢!
答案 0 :(得分:1)
想出我的问题...在我的settingsDidChange中进一步向下我正在重新分配我的LocationManager,这导致它恢复到默认设置。我之前没有看到它感到愚蠢!无论如何,谢谢你的帮助!
locationManager = [[CLLocationManager alloc] init];
ARRRGGG !!!