NSUserDefaults
のドキュメントでは、synchronise
メソッドが定期的に呼び出されていますが、頻度は言及されていません。 10分のGoogle検索で何も明らかにされなかったNSUserDefaultsはどのくらいの頻度で同期されていますか?
synchronise
メソッドはどのくらい呼び出されますか?
NSUserDefaults
のドキュメントでは、synchronise
メソッドが定期的に呼び出されていますが、頻度は言及されていません。 10分のGoogle検索で何も明らかにされなかったNSUserDefaultsはどのくらいの頻度で同期されていますか?
synchronise
メソッドはどのくらい呼び出されますか?
これは開示されていない実装の詳細です(おそらく一定の時間間隔でさえありません)。ただし、- [NSUserDefaults synchronize]
に振り回されたメソッドを実行し、その実装が同期するたびにNSLog()
を呼び出すように変更することで、自分自身で見つけることができます。
私はプログラムを開始してから20分後に、値を変更しても 'synchronise'はまだ呼び出されていません。私はうんざりする権利をした。私は今諦めている。 – duci9y
@ duci9yよろしいですか。レッスンで学んだことは:彼らが不正行為をしているので、アップルに頼らないでください:)受け入れてくれてありがとう。 –
自動同期は、手動同期と同じコードパスを実行しません(具体的には、NSUserDefaultsが使用するCFPreferencesに実装されています)。 10.7とiOSでは、変更後は約15秒間隔ですが、一定ではありません。 10.8以上では、同期性能が向上しているため短縮されています。 –
わかりません。それはあなたが頼りにすべきではない実装の詳細です。変更を永続化する必要がある場合は、手動で ' - synchronize'してください。 –
しかし、どのくらい頻繁に呼び出されるのか不思議であれば、シンプルな 'NSLog()'にスウィズリングして自分自身で見つけ出す方法はありますか? –
ありがとう、私はそれを考えなかった。 – duci9y