オブザーバーを登録するための次のコードがあります。
// This logs some value
NSLog(@"%@", [[NSUserDefaults standardUserDefaults] objectForKey:@"myKey"]);
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleNotifications:)
name:SomeNotification
object:nil];
- (void) handleNotifications: (NSNotification *)notification
{
// This logs null
NSLog(@"%@", [[NSUserDefaults standardUserDefaults] objectForKey:@"myKey"]);
}
myKey
通知セレクターでnullを返すのはなぜですか?
編集
セレクターに値が存在しない場合に新しい値を保存しようとしていますが、アプリを再起動すると、セレクターに常にnullが返されるように見えます。
- (void) handleNotifications: (NSNotification *)notification
{
if (![[NSUserDefaults standardUserDefaults] objectForKey:@"myKey"])) {
NSLog(@"Saving");
[[NSUserDefaults standardUserDefaults] setObject: @"ABC", forKey:@"myKey"]
[[NSUserDefaults standardUserDefaults] synchronize];
}
}