文書   >   Foundation   >   iCloud   >   NSUbiquitousKeyValueStore
クラス
NSUbiquitousKeyValueStore
ユーザーが接続しているデバイス上で実行されているあなたのアプリのインスタンス間でデータを共有するためにあなたが使用する、キー値のペアの iCloud ベースのコンテナ。
概要
iCloud の キー値保管を使用して、ユーザーの iCloud アカウントに接続されているすべてのデバイス上で、アプリのすべてのインスタンスに環境設定、構成、およびアプリの状況のデータを利用できるようにします。 BOOL などのスカラー値だけでなく、NSNumber、NSString、NSDate、NSData、NSArray、および NSDictionary のいずれかのプロパティリストオブジェクト型を含む値を格納できます。
キー値保管オブジェクトへのアプリの変更は、最初はメモリに保持され、システムによって適切な回数ディスクに書き込まれます。ユーザーが iCloud アカウントにサインインしていないときにキー値保管オブジェクトに書き込むと、データは次の同期の機会までローカルに保存されます。ユーザーが iCloud アカウントにサインインすると、システムはローカルのディスク上のキーと値を iCloud サーバー上のキー値を自動的に調整します。
アプリを実行しているデバイスで、同じ iCloud アカウントに接続されている場合、キー値の変更を iCloud にアップロードできます。このような変更を追跡するには、アプリの起動中に NSUbiquitousKeyValueStoreDidChangeExternallyNotification 通知を登録します。その後、synchronize メソッドを呼び出すことで、iCloud (ローカルのものよりも新しい可能性があります) からキー値を取得します。値を変更した後、アプリの設計で iCloud へのアップロードを高速化する必要がない限り、アプリの寿命中、synchronize メソッドを再度呼び出す必要はありません。
アプリ内にキー値保管を使用する方法の詳細については、iCloud 設計ガイド 内の iCloud でのキー値データの設計 を参照してください。
オフラインのときにアプリの動作に不可欠なデータにはこのクラスを使用しないで下さい。代わりに、そのようなデータをローカルユーザーのデフォルトデータベースに直接格納して下さい。
特定のユーザーに対して、アプリのキー値保管で使用できる合計容量は 1 MBです。 キーごとの値のサイズの制限は 1 MBで、キーの最大数は 1024 です。これらの割り当てを超えるデータを書き込もうとすると、書き込みは失敗し、iCloud のキー値保管は変更されません。このシナリオでは、システムは、変更理由が NSUbiquitousKeyValueStoreDownChangeExternallyNotification 通知を NSUbiquitousKeyValueStoreQuotaViolationChange の変更理由で通知します。
iCloud キー値保管のキー文字列の最大長は、UTF8 コード化を使用して 64 バイトです。長いキー名に値を書き込もうとすると、実行時エラーが発生します。
このクラスを使用するには、App Store または Mac App Store を通じてアプリを配布し、Xcode プロジェクト内で com.apple.developer.ubiquity-kvstore-identifier の資格を要求しなければなりません。詳細については、iCloud 設計ガイド 内の 複数のアプリでの共通キー値保管の設定 を参照してください。
このクラスはサブクラス化されていません。
トピックス
共有インスタンスの取得
defaultStore
共有した iCloud キー値保管オブジェクトを返します。
値の取得
- arrayForKey:
指定されたキーに関連した配列を返します。
- boolForKey:
指定されたキーに関連したブール値を返します。
- dataForKey:
指定されたキーに関連したデータオブジェクトを返します。
- dictionaryForKey:
指定されたキーに関連した dictionary オブジェクトを返します。
- doubleForKey:
指定されたキーに関連した double 値を返します。
- longLongForKey:
指定されたキーに関連した long long 値を返します。
- objectForKey:
指定されたキーに関連したオブジェクトを返します。
- stringForKey:
指定されたキーに関連した文字列を返します。
値の設定
- setArray:forKey:
キー値保管内の指定されたキーの配列オブジェクトを設定します。
- setBool:forKey:
キー値保管内の指定されたキーのブール値を設定します。
- setData:forKey:
キー値保管内の指定されたキーのデータオブジェクトを設定します。
- setDictionary:forKey:
キー値保管内の指定されたキーの dictionary オブジェクトを設定します。
- setDouble:forKey:
キー値保管内の指定されたキーの double 値を設定します。
- setLongLong:forKey:
キー値保管内の指定されたキーの long long 値を設定します。
- setObject:forKey:
キー値保管内の指定されたキーのオブジェクトを設定します。
- setString:forKey:
キー値保管内の指定されたキーの文字列オブジェクトを設定します。
メモリ内のキー値データをディスクに明示的に同期する
- synchronize
メモリ内のキー値をディスクに保存されているものと明示的に同期させます。
キーの削除
- removeObjectForKey:
指定されたキーに関連した値をキー値保管から削除します。
現在のキー値の取得
dictionaryRepresentation
キー値保管内のすべてのキー値ペアを含む dictionary。
定数
通知キー
これらのキーは、NSUbiquitousKeyValueStoreDidChangeExternallyNotification 通知のユーザー情報辞書に含めることができます。
Change Reason Values
NSUbiquitousKeyValueStoreChangeReasonKey キーに関連した可能な値。
通知
NSUbiquitousKeyValueStoreDidChangeExternallyNotification
iCloud からプッシュされた受信データのために、ローカルのキー値保管内の 1 つ以上のキーの値が変更されたときに通知されます。