8

NSUbiquitousKeyValueStoreをエッジケースで使用する方法についてのドキュメントは明確ではありません。NSUbiquitousKeyValueStoreとNSUserDefaultsを一緒に使用する方法

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

iCloudが有効になっている場合、NSUbiquitousKeyValueStoreの値はディスクに保存され(オフラインでも利用可能です)、 NSUserDefaultsを使用する理由は、64KB未満のデータがあることがわかっている場合です。私はそれはあなたが特別なニーズを持っている場合を除き、1行のコードを追加し、それを行います...あなたのための作業を行いますMugunthクマール(ありがとう!)によって書かれた単純なクラスです http://blog.mugunthkumar.com/coding/ios-code-mkicloudsync-sync-your-nsuserdefaults-to-icloud-with-a-single-line-of-code/

を使用しています

答えて

1

すべての読み取りとのiCloudへの書き込みは...あなたがする必要があるすべては読まれて...いつものようにNSUserDefaultsへの書き込み

編集:

Carful、あなたはNSUserDefaultsから私はリンクされたコードを項目を削除する場合上記の項目はクラウドから削除されません。あなたはNSUSerDefaultsから項目を削除するときはいつでもそうとNSUbiquitousKeyValueStoreに同じことを行ってください:あなたはあなたのNSUserDefaultsのすべてを同期したい場合は、上記の提供

NSUbiquitousKeyValueStore* keyValueStore=[NSUbiquitousKeyValueStore defaultStore]; 
[keyValueStore removeObjectForKey: yourKey]; 
1

をMugunthクマーの答えは美しく動作します!

しかし、それはすべてのアプローチか全くないアプローチです。同期するデフォルトを選択または選択することはできません。

私がこれを見つけたのは、あなたがもっと厄介な人を探している場合は助けになるかもしれません。Tutorial

関連する問題