首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CKQuery谓词有引用而不是字段?

CKQuery谓词有引用而不是字段?
EN

Stack Overflow用户
提问于 2014-07-25 17:57:32
回答 2查看 3.9K关注 0票数 8

我需要创建一个CKQuery,其中谓词包含记录的引用,而不是记录的字段。

像这样

代码语言:javascript
运行
复制
let query = CKQuery(recordType: "OUP", predicate: NSPredicate(format: "o = %@", "FF4FB4A9-271A-4AF4-B02C-722ABF25BF44")

如何设置o是一个CKReference,而不是字段!

我知道这个错误:

字段'o‘查询谓词中的字段值类型不匹配

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-25 18:11:35

我在CKQuery class reference中找到了答案,或者至少有一个如何在CKQuery中使用CKReference的例子。

代码语言:javascript
运行
复制
CKReference* recordToMatch = [[CKReference alloc] initWithRecordID:employeeID action:CKReferenceActionNone];
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"employee == %@", recordToMatch];

要匹配链接到ID不同的记录的记录,创建一个与包含引用对象的字段匹配的谓词,如清单1所示。在示例中,记录的employee字段包含指向另一条记录的CKReference对象。当查询执行时,当本地创建的CKReference对象中的ID与记录的指定字段中的ID相同时,就会发生匹配。

票数 11
EN

Stack Overflow用户

发布于 2015-07-11 16:33:17

您可以使用CKRecordCKRecordID (有或没有CKReference )来匹配关系。

CKRecord:

代码语言:javascript
运行
复制
let predicate = NSPredicate(format: "artist == %@", artist)

CKRecordID:

代码语言:javascript
运行
复制
let predicate = NSPredicate(format: "artist == %@", artistID)

CKReference与CKRecord:

代码语言:javascript
运行
复制
let recordToMatch = CKReference(record: artist, action: CKReferenceAction.None)
let predicate = NSPredicate(format: "artist == %@", recordToMatch)

CKReference与CKRecordID:

代码语言:javascript
运行
复制
let recordToMatch = CKReference(recordID: artistID, action: CKReferenceAction.None)
let predicate = NSPredicate(format: "artist == %@", recordToMatch)
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24961807

复制
相关文章

相似问题

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