我的 LocationManager 设置在到达 didUpdateLocations 时变回默认值
My LocationManager settings are changing back to default when it reaches didUpdateLocations
所以,第一个stack overflow问题可是很久了reader ;)
我的 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" 作为 desiredAccuracy。我不确定我在这里错过了什么......我希望你们都能引导我朝着正确的方向前进。谢谢!
解决了我的问题...在我的 settingsDidChange 中,我正在重新分配我的 LocationManager,这导致它恢复为默认设置。以前没看到我觉得很傻!无论如何感谢您的帮助!
locationManager = [[CLLocationManager alloc] init];
啊啊啊!!!
所以,第一个stack overflow问题可是很久了reader ;)
我的 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" 作为 desiredAccuracy。我不确定我在这里错过了什么......我希望你们都能引导我朝着正确的方向前进。谢谢!
解决了我的问题...在我的 settingsDidChange 中,我正在重新分配我的 LocationManager,这导致它恢复为默认设置。以前没看到我觉得很傻!无论如何感谢您的帮助!
locationManager = [[CLLocationManager alloc] init];
啊啊啊!!!