問題タブ [ckreference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1155 参照

ios - CloudKit で CKReferences を取得するためのベスト プラクティス アプローチは何ですか?

私の CloudKit セットアップでは、Personレコード タイプがあり、各人には別のオブジェクトに対するFriend属性があります。CKReferencePerson

すべての s をフェッチしますPerson CKRecord。これらの人々を表にリストし、彼らと一緒に友達をリストします. 現在、私は を取り、CKReferenceを使用して各友人を個別に取得していrecordIDます。

これが私が見ることができる唯一の方法ですが、ベストプラクティスは何ですか? 特に、非常に多くの友人を獲得する可能性があるためです。これらすべてのオブジェクトを個別にフェッチするのは直観に反するようです。

メイン フェッチで関連オブジェクトをフェッチすることを選択できる、CoreData によく似たメソッドがあるかどうか疑問に思っていましたか? たとえば、 a を取得するPersonと、自動的に友達も取得されます。

0 投票する
1 に答える
3406 参照

swift - オブジェクトの配列を CloudKit に保存する

CloudKit で他のオブジェクトの配列を含むオブジェクトを保存する最善の方法について混乱しています。

アイテムのさまざまなコレクションを持つ todo リスト アプリがあるとします。アイテムのコレクション全体を保存/取得するにはどうすればよいですか?

「名前」と呼ばれる文字列属性と、「項目」と呼ばれる参照リスト属性を持つコレクションのレコード タイプを使用できますか?

CloudKit が子オブジェクトからその親オブジェクトを参照する方法のため、Item の Record タイプには「コレクション」と呼ばれる参照属性が必要であることを知っています。

次のコードを使用して、アイテムのインスタンスなしでコレクションを保存することができました

もう 1 つのオプションは、コレクションを保存するときに、Item のすべてのインスタンスをループし、それらを個別に保存することです。コレクションへの参照属性は CloudKit 側で接続を確立しますが、これはネットワーク呼び出しが多すぎるように思えます。

0 投票する
1 に答える
1339 参照

swift - CloudKit ダッシュボードを使用して参照属性を作成する方法

CloudKit ダッシュボードを使用してレコードを作成したため、レコードはプログラムでは作成されません。「デフォルト ゾーン、モデル データ」の下 (申し訳ありませんが、画像を投稿するには少なくとも 10 件の評判が必要です.. :/ ) テキスト バージョンは次のとおりです。

"EventRef0 975f5715-3ccd-4c5f... DeleteSelf 参照"

したがって、作成したレコードには、このような参照フィールドが 3 つあります。「デフォルトゾーン、イベント」の下に。これらのレコードの 1 つには、次のヘッダーがあります。

ID: 975f5715-3ccd-4c5f...

作成日:2015 年 1 月 20 日 19:00 作成者: _ac6625... 更新者: 更新者:

私の質問は次のとおりです。

1) EventRef0 の「参照」フィールドには何を入力しますか? 私が現在持っているイベントID、または何か他のもの?

2) 参照したい 3 つのイベントに対して 3 つの参照を作成するという、複数の参照を作成する正しい方法はありますか?

3) イベントをフェッチしたい場合、配列への 1 回の呼び出しですべての CKReferences をフェッチしてから、その配列にインデックス付けされたイベント データをフェッチできますか、それとも各イベントを取得するために個別の呼び出しを行う必要がありますか? 「参照」属性をキー入力することで、配列内のすべての参照を取得する方法があることを望んでいました。それが可能かどうかはわかりません。できればSwiftでお願いします。

どんな助けでも大歓迎です。ありがとう。

0 投票する
1 に答える
622 参照

swift - cloudkit は、新しいレコードの参照としてユーザー ID を入力します (コード内)

ユーザーがレコードを作成できるアプリを設定しています。彼/彼女がチャットルームのオーナーだとしましょう。そのため、チャットルームの記録には「admin」という属性があります。この属性は、所有者の ID である参照を取ります。

これが私が試したものです:

上記のように iDString を渡し、レコード (部屋) を作成すると、その管理参照は空になります。iDString を文字列としてキャストしたかどうか。

userRecordID を直接渡すと、エラーが発生します:「CKRecordID」は「CKRecordValue」と同一ではありません

私はいたるところを見てきましたが、これに関する詳細情報を見つけることができません。

どんな助けでも大歓迎です。君たちありがとう!

0 投票する
1 に答える
150 参照

swift - ユーザー ID を参照として割り当てることができません

レコードにいくつかの異なる属性を割り当てようとしています。

日付と名前は正常に機能しています。別のレコードへの参照である Avatar も正常に機能します。しかし、その後、ユーザーへの参照を割り当てようとすると、画面の瞬間に頭をぶつけます。これが私のコードです:

daMainUser を保存して Apple ダッシュボードを確認すると、「avatar」参照は正常に保存されていますが、「ownerOfThat」は保存されていません。コンソールから得られるものは次のとおりです。

そのため、userID と別のレコードの ID は同じ種類の ID ではないと思います。しかし、私はその理由と何をすべきかを知りません。前もって感謝します

0 投票する
0 に答える
1071 参照

objective-c - CloudKit 関係 CKReference のセットアップとクエリ。

ユーザーが場所を保存できるようにしています。それはcloudKitに保存されており、すべての場所を正常に取得できます。保存された場所ごとに、「作成者: IDXXX」という作成者のレコードがあります。それを作成した単一のユーザーによって保存されたすべての場所を取得するにはどうすればよいですか?

CloudKit には、場所とユーザーの 2 つのレコード タイプがあります。場所が保存されると場所として保存され、CKReference を使用してユーザーのレコード ID への参照を、属性タイプ「参照」の属性名の「owningList」としてマークした場所のフィールドに追加します。以下のこのメソッドは、新しい保存された場所の CKRecord を取得して新しい場所が保存されるときに呼び出されます。

次に、ユーザーのレコード ID である CKReference とフィールド名「owningList」を指定する述語を使用してすべての場所を取得しようとしましたが、結果は返されません。成功せずに他の方法を試しました。私はこれに非常に慣れていないので、助けや説明をいただければ幸いです。

0 投票する
1 に答える
2180 参照

ios - Swift を使用した CloudKit の CKReference

私は RecordTypeAccountと別のものを持っていFriendsます。Account私は各レコードの作成時に設定してRecordIDおり、列がありますName

Friends には、2 つの列がMeありMyFriendます。アカウントのMyFriendを含むリファレンスです。RecordID

友達のアカウントの名前を取得するにはどうすればよいですか? Friends にクエリを実行して、Meが myであるすべてのレコードを取得する必要がありますRecordID。次に、これらのレコードの参照を使用して、Account テーブルから Names を取得する必要があります。

次のことを試しましたが、結果が得られません。

0 投票する
2 に答える
986 参照

ios - CKReference の CloudKit サブスクリプション通知が期待どおりに機能しない

ユーザーへの CKReference を持つフィールドを含むレコードの CKSubscription をセットアップしようとしています。ただし、レコードが作成されるたびに、compoundPredicate のこの部分が無視され、通知は送信されません。CKSubscription の述語で CKReference を使用することについて何か違いはありますか? ダッシュボードに移動して、(シミュレーターで別のユーザーを実行しているときに) 自分のユーザー recordID の下に新しいレコードを入力します。これは、レコードがデバイスからのものである場合、通知を受信しないことを読んだためです。私はこれに1週間立ち往生しており、これに固有のものをオンラインで見つけることができないため、洞察をいただければ幸いです。真の型の述語の通知を受け取ることができるので、基本的な設定は問題ないと思います。

ダッシュボードには、両方のテスト ユーザーに対して 1 つの汎用サブスクリプションが表示されますが、どちらのユーザーにも特定のレコード ID は表示されません (これは問題ですか?)。

fetchAllSubscriptionsWithCompletionHandler メソッドを実行すると、このデバイスの現在のユーザー固有の recordID がデバッガーの CKReference として表示されます。だから、なぜうまくいかないのかわからない。

最初に CKReference を作成し、それを述語に使用するコードは次のとおりです。