8

NSUbiquitousKeyValueStoreエッジケースでの使用方法に関するドキュメントは明確ではありません。

値を設定したい場合は、iCloudが無効になる可能性があるため、両方NSUserDefaultsに値を設定する必要があることを理解しています。NSUbiquitousKeyValueStoreただし、私のテストでは[NSUbiquitousKeyValueStore defaultStore]、iCloudが無効になっている場合でも有効なオブジェクトが返されます(Mac OSでテスト済み)。

また、私の理解では、iCloudが有効になっている場合、NSUbiquitousKeyValueStoreの値はディスクに保存されます(そしてオフラインで利用できます)。データが64KB未満であることが確実な場合、NSUserDefaultsを使用する理由は何ですか?

4

3 に答える 3

1

私は http://blog.mugunthkumar.com/coding/ios-code-mkicloudsync-sync-your-nsuserdefaults-to-icloud-with-a-single-line-of-code/を使用しています

これは、Mugunth Kumar(thanx!)によって作成された単純なクラスであり、作業を行います...特別なニーズがない限り、1行のコードを追加すると、iCloudへのすべての読み取りと書き込みが行われます...必要なすべて行うことは、通常どおりNSUserDefaultsに対して読み取りと書き込みを行うことです...

編集:

NSUserDefaultsからアイテムを削除した場合、上記でリンクしたコードはクラウドからアイテムを削除しません。NSUSerDefaultsからアイテムを削除するときはいつでも、NSUbiquitousKeyValueStoreに対して次のように同じことを行ってください。

NSUbiquitousKeyValueStore* keyValueStore=[NSUbiquitousKeyValueStore defaultStore];
[keyValueStore removeObjectForKey: yourKey];
于 2011-11-21T10:25:39.140 に答える
1

すべてのNSUserDefaultsを同期したい場合は、上記のMugunthKumarの回答がうまく機能します。

ただし、これはALLまたはNOTHINGのアプローチです。同期するデフォルトを選択または選択することはできません。

このチュートリアルは、もっと気の利いたものを探している場合に役立つかもしれません。

于 2011-12-31T19:32:38.027 に答える
0

NSUserDefaltに保存しながら、NSUbiquitousKeyValueStoreにも値を保存するために使用できる単純なiOSカテゴリを作成しました。

この助けを願っています: https ://github.com/RiccardoPaolillo/NSUserDefault-iCloud

于 2014-01-06T16:17:41.547 に答える