Ainsi, la première pile question de trop-plein, mais un lecteur de longue date;)Mes paramètres LocationManager changent de retour par défaut quand il atteint didUpdateLocations
Mes paramètres LocationManager changent de retour par défaut quand il atteint didUpdateLocations. J'ai mis en place un observateur dans viewDidLoad ainsi que des valeurs par défaut comme ça. Je suis également alloc, initing, et en définissant le délégué de locationManager avant toute autre chose.
[[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];
Voici le settingsDidChange qui est observé et où je tente de régler la desiredAccuracy de LocationManager.
- (void)settingsDidChange:(NSNotification *)notification
{
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
CLLocationAccuracy desiredAccuracy = [settings doubleForKey:[SettingKeys LocationTrackingAccuracyPrefs]];
locationManager.desiredAccuracy = desiredAccuracy;
}
Dans Paramètres séparés vue, je suis en train de changer la valeur de desiredAccuracy qui semble être transportant plus jusqu'à ce qu'il arrive à didUpdateLocations. Ensuite, peu importe ce que je l'ai défini, il semble revenir (ou ne jamais changer) à "Best" comme l'exactitude désirée. Je ne suis pas sûr de ce qui me manque ici ... J'espère que vous pourrez me diriger dans la bonne direction. Merci!
Essayez [[NSUserDefaults standardUserDefaults] synchronize]; après registerDefaults –
Avez-vous défini un point d'arrêt dans settingsDidChange pour vous assurer qu'il est appelé? avez-vous vérifié la valeur de desiredAccuracy que vous obtenez? Avez-vous vérifié que locationManager n'est pas nul lorsque ce code est exécuté? (Mon pari est que locationManager est nul, donc votre méthode settingsDidChange ne change rien.) –
@FranePoljak J'ai essayé la synchronisation - il ne semblait pas y avoir de changement. – rclee