サーチ…


備考

サポートされるタイプ

  • NSData
  • NSDate(日付)
  • NSNumber(Int / Double)
  • NSString(String)
  • NSArray(配列)
  • CLLocation
  • CKReference
  • CKAsset

詳細

CloudKitダッシュボード

CloudKitで使用するためのアプリの登録

必要なのは、アプリケーションがiCloudにアクセスし、CloudKitを使用してレコードを書き込むことができるように、エンタイトルメントファイルを取得することです。

アプリケーションからiCloudへのアクセスを許可する手順は次のとおりです。

1-プロジェクトナビゲータでプロジェクトを選択し、[全般]タブを開きます。

2-アイデンティティセクションで、開発者のApple IDをチームのドロップダウンメニューに設定します。 (利用できない場合は、Xcodeメニュー - >環境設定 - >アカウントに追加してください。

3-プロジェクトのプロパティのCapabilitiesタブに移動し、iCloudをオンにします。次に、「Key-Value Storage」と「CloudKit」を選択します。

ここに画像の説明を入力

4-次の項目がチェックされていることを確認します。

ここに画像の説明を入力

すべての項目がチェックされている場合、あなたのアプリはCloudKitを使用する準備ができています。

CloudKitダッシュボードの使用

CloudKit関連のコードを使用して作成されたすべてのレコードは、CloudKit Dashboardでプレビュー、編集、削除することもできます。 CloudKit Dashboardにアクセスするには、ここをクリックしてください

ダッシュボードにはいくつかの部分があります。

  • レコードタイプ(後で説明する)
  • セキュリティロール(データベースをパブリックまたはプライベートとして設定できる場所)
  • サブスクリプションタイプ( Apple Push Notification(APN)登録してレコードが変更されたときに通知することができる)

レコードタイプ

ここでは、アプリケーションのすべての既存のレコードタイプのリストを取得します。最初にCloudKit Dashboardを開いたときに、そこにはUsersというレコードタイプがあります。これを使用するか、削除して独自のものを使用することができます。

このページでは、データを手動で入力することができます。もちろん、ほとんどの場合、iOS SDKはダッシュボードよりも優れた処理を行うことができるため、これは無意味ですが、必要に応じて機能もあります。このページのほとんどの用途は、プレビュータイプです。

CloudKitにデータを保存する

CloudKitに日付を保存するには、以下を行う必要があります:

  • CKRecordID (独自のレコードのキー)
  • CKRecord (データを含む)

レコードキーを作る

新しいレコード識別子がすべて一意であることを保証するために、現在のタイムスタンプを使用します。私たちが使用してタイムスタンプを取得NSDateのメソッドtimeIntervalSinceReferenceDate()これは###。###(#は数字)の形式であり、整数部分を使用します。これを行うために、次の文字列を分割します。

迅速

let timestamp = String(format: "%f", NSDate.timeIntervalSinceReferenceDate())
let timestampParts = timestamp.componentsSeparatedByString(".")
let recordID = CKRecordID(recordName: timestampParts[0])

記録を作る

レコードを作成するには、レコードタイプ(CloudKitダッシュボードの使用で説明)をユーザーとして指定し、今作成したIDとデータを指定する必要があります。ここでは、サンプルテキスト、画像、現在の日付をレコードに追加します。

迅速

let record = CKRecord(recordType: "Users", recordID: recordID)
record.setObject("Some Text", forKey: "text")
record.setObject(CKAsset(fileURL: someValidImageURL), forKey: "image")
record.setObject(NSDate(), forKey: "date")

目標-C

CKRecord *record = [[CKRecord alloc] initWithRecordType: "Users" recordID: recordID];
[record setObject: "Some Text" forKey: "text"];
[record setObject: [CKAsset assetWithFileURL: someValidImageURL] forKey: "image"];
[record setObject: [[NSDate alloc] init] forKey: "date"];

注意

ここでは、備考で述べたように画像フォーマットはCloudKitで直接サポートされていないため、 UIImageをレコードに直接追加しなかったので、 UIImageCKAsset変換しCKAsset

コンテナへのアクセス

迅速

let container = CKContainer.defaultContainer()
let database = container.privateCloudDatabase // or container.publicCloudDatabase

CloudKitデータベースにレコードを保存する

迅速

database.saveRecord(record, completionHandler: { (_, error) -> Void in
    print(error ?? "")
})


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow