У меня возникает ошибка при чтении NSUserDefaults (через InAppSettingsKit).Я не уверен, что проблема заключается в моем коде.Я настроил наблюдателя, чтобы проверить, есть ли какие-либо изменения в NSUserDefaults:
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self
selector:@selector(setOptions)
name:NSUserDefaultsDidChangeNotification
object:nil];
Метод, который вызывает этот метод, используется для обновления «типа карты» MKMapView:
- (void)setOptions
{
// Get the map style
NSString *mapStyle = [[NSUserDefaults standardUserDefaults] stringForKey:kMapType];
// Update map style
if ([mapStyle isEqualToString:@"Hybrid"])
{
map.mapType = MKMapTypeHybrid;
}
else if ([mapStyle isEqualToString:@"Map"])
{
map.mapType = MKMapTypeStandard;
}
else if ([mapStyle isEqualToString:@"Satellite"])
{
map.mapType = MKMapTypeSatellite;
}
[mapStyle release];
}
Приложение настроено таким образом, что вы нажимаете кнопку, и InAppSettingsKit инициализируется, в этом я изменяю настройку для отображаемого типа карты и возвращаюсь к главному экрану в моем приложении.На данный момент карта, кажется, обновляется правильно, и нет никаких проблем.Эта проблема возникает, когда я пытаюсь перезапустить InAppSettingsKit, чтобы снова изменить тип карты.
Кто-нибудь знает, является ли проблема моим кодом, и если да, то как мне его исправить?