NSUserDefaultsに値をセットしたのに反映されない?
NSUserDefaultsを使用する機会があったのですが、値が反映されたり、反映されなかったりと変な事象が起きたので、調べてみました。
NSUserDefaultsですが、値をセットした後にsynchronizeしないと直ぐに値が反映されないようです。
というか、適当な時に値が反映されればいいよってどんな使い方をするんですかね?
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setObject:val forKey:key]; [userDefaults synchronize];
synchronizeせずに非同期で値をセットした方がメモリ効率はいいんでしょうね。でも、大抵の場合、直ぐにセットされないと使いづらさを感じてしまいますね。