Делаем настоящий базовый тест по настройке/получению данных с помощью NSUserDefaults. Мое приложение для iPhone работает и прекрасно настраивает данные, но на часах оно становится нулевым.
У меня включена группа приложений для обоих, и я проверил, что они идентичны, используя одну и ту же группу. Файлы прав для каждого бит за битом одинаковы.
В ViewController.m
defaults = [[NSUserDefaults alloc] initWithSuiteName:@"com.defaultmethod.share"];
[defaults setObject:playerName forKey:@"playerName"];
[defaults synchronize];
В InterfaceController.m
- (void)awakeWithContext:(id)context {
[super awakeWithContext:context];
// Configure interface objects here.
defaults = [[NSUserDefaults alloc] initWithSuiteName:@"com.defaultmethod.share"];
[defaults synchronize];
}
- (void)willActivate {
// This method is called when watch view controller is about to be visible to user
[super willActivate];
NSLog(@"playerName: %@", [defaults objectForKey:@"playerName"]);
}
И все, что я получаю в ответ, это:
имя_игрока: (null)
Я должен упустить что-то настолько очевидное. Когда я использую NSLog на стороне iphone, все работает нормально, поэтому я знаю, что оно сохраняется правильно.