0

次のような属性を含む 3 つのレコード タイプがあります。

クライアント

ユーザー名: 文字列

ProfileImage : UIImage

コメント

ユーザー : クライアント リファレンス

メッセージ: 文字列

コメント : コメント参照リスト

Shop CKRecord オブジェクトからクライアントの Username と ProfileImage を取得できますか? このパスを実行できますか:

  1. ショップのレコードからコメント参照を取得する
  2. 見つかった各コメント参照からユーザー参照を取得します
  3. そして最後にショップレコードのコメント参照のユーザー参照からユーザー名とプロフィールを取得する

パスがある場合、これを行う最善の方法は何ですか?

4

1 に答える 1

0

ステップ 1 の例を次に示します。他のステップは、リストしたステップから同様に続き、前の各ステップの結果をカスケードします。(注: CKRecord 変数から収集できるため、明示的な CKReference フィールドは必要ありませんが、例をより読みやすくしたかったのです)

struct Shop {
  // other variables....
  var record : CKRecord?
  var commentRef : CKReference?
}

struct Comment {
  // other variables....
  var record : CKRecord?
  var clientRef : CKReference?
}

var shops : [Shop]
var comments : [Comment]

func commentsWithReference(ref: CKReference) -> [Comment] {
  let matchingComments = comments.filter {$0.record!.recordID == ref.recordID }
  return matchingComments
}

let shopComments = shops.map { commentsWithReference($0.commentRef!) }
于 2016-05-19T02:50:33.783 に答える