首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从CKReference对象中获取引用字符串

如何从CKReference对象中获取引用字符串
EN

Stack Overflow用户
提问于 2015-05-29 21:51:59
回答 2查看 2.1K关注 0票数 0

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

我将CKReference保存如下

代码语言:javascript
复制
let authorReference = CKReference(record: addBookViewController.authorTitle!, action: CKReferenceAction.DeleteSelf)

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

我目前正在获取CKReference,如下所示在表上显示

代码语言:javascript
复制
let authorReference = bookRecord.objectForKey("AuthorName") as! CKReference

let authorTitle = authorReference.recordID.recordName

cell.detailTextLabel?.text = authorTitle

在tableview单元格上,它显示AuthorName的记录ID。相反,我希望看到字符串格式的AuthorName。我怎么弄到它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-31 08:56:08

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

代码语言:javascript
复制
database.fetchRecordWithID(CKRecordID(recordName: authorReference.recordID), completionHandler: {record, error in
 // now you can use record.objectForKey("AuthorTitle")
}
票数 1
EN

Stack Overflow用户

发布于 2015-08-11 07:40:54

您也可以使用CKFetchRecordsOperation

代码语言:javascript
复制
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];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30539644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档