0

我有两种记录类型:Books& Authors。书籍有两个属性BookName(String)& AuthorName(CKReference)Authors有一个属性AuthorTitle(String)

我保存CKReference如下

let authorReference = CKReference(record: addBookViewController.authorTitle!, action: CKReferenceAction.DeleteSelf)

bookRecord.setObject(authorReference, forKey: "AuthorName")

我目前正在获取CKReference如下显示在桌子上

let authorReference = bookRecord.objectForKey("AuthorName") as! CKReference

let authorTitle = authorReference.recordID.recordName

cell.detailTextLabel?.text = authorTitle

在 tableview 单元格上,它显示记录 ID AuthorName。相反,我想以AuthorName字符串格式查看。我如何得到它?

4

2 回答 2

2

你也可以使用CKFetchRecordsOperation

CKRecordID *recordID = [[CKRecordID alloc] initWithRecordName:@"firstRecordIDName"];
CKRecordID *recordID2 = [[CKRecordID alloc] initWithRecordName:@"secondRecordIDName"];
NSArray *arrayOfRecordIDs = @[recordID,recordID2];;
CKFetchRecordsOperation *fetchRecordsOperation = [[CKFetchRecordsOperation alloc]initWithRecordIDs:arrayOfRecordIDs];
fetchRecordsOperation.perRecordCompletionBlock = ^(CKRecord *record, CKRecordID *recordID, NSError *error) {
    if (error) {

        // handle error

    }else {

        // Successfull fetch, create data model

    }

};
fetchRecordsOperation.database = publicDatabase;
[fetchRecordsOperation start];
于 2015-08-11T07:40:54.053 回答
1

您的 AuthorName 字段是对其他记录的引用。为了从该记录中获取数据,您需要先获取它。

database.fetchRecordWithID(CKRecordID(recordName: authorReference.recordID), completionHandler: {record, error in
 // now you can use record.objectForKey("AuthorTitle")
}
于 2015-05-31T08:56:08.877 回答