ああ、私は愚かです!ここではエレガントな方法で行きます。XCode 内の Apple ドキュメントで AppPrefs を検索すると、やりたいことを正確に実行するサンプル アプリが表示されます。コンパイルして実行するだけ!NSUserDefaultsDidChangeNotificationを利用します。
これは、オブザーバーを登録するために使用されているコードです。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(defaultsChanged:)
name:NSUserDefaultsDidChangeNotification
object:nil];
古い答え:
NSUserDefaults から変更日を取得できるようには見えません。これまでのところ、次の方法しか考えられません。
NSUserDefaults *previousDefaults = [someInstance previousUserDefaults];
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
if([previousDefaults isEqualToDictionary:currentDefaults])
{
[someOtherInstance sendModifiedUserDefaultsToServerWithDefaults:currentDefaults];
[yetAnotherInstance saveModified]
}
アプリを初めて起動するときに、ユーザーの既定値をディクショナリとしてディスクに保存する必要があります。つまり、既定値です。次に、アプリを開くたびに、これら 2 つの辞書を比較します。もし彼らが