的阵列我有一个类Download
用作用于CKQueryOperation
的包装。其中inits允许我建立我的谓词值的数组:夫特谓词只匹配第一个值在值
init(type: String, queryField: String, queryValues: [CKRecordValue], to rec: RecievesRecordable, from database: CKDatabase? = nil) {
let predicate = NSPredicate(format: "\(queryField) = %@", argumentArray: queryValues)
query = CKQuery(recordType: type, predicate: predicate)
reciever = rec
db = database
super.init()
}
当我测试了一下,query
仅匹配数组中的第一个值。所以,如果queryValues = [testValue0, testValue1]
,我有一个记录,其字段匹配testValue0
,我有匹配testValue1
第二记录,仅在第一记录将被发现。如果我切换订单,则会识别其他记录。
这似乎不可思议的是我可以创建一个谓词的数组,但只有第一个值被匹配。文档说,价值观是他们出现的顺序取代,但应该不是仍然可以在移动到第二个值?
更多情况下,每个记录存储在一个单独的数据库(私人与公开)以及我的Download
类推出两个独立CKQueryOperations
,它们都依赖query
,如果database
参数是左零。 无论哪个操作失败,都会找到没有匹配第一个值的结果,然后在检查第二个值之前放弃。
,如果需要,我可以包括“下载”完整的代码和我的失败的单元测试。
非常感谢您回复我。我远离我的代码atm,但这很有道理。一旦我有机会确认它解决了我的问题,我会接受这个答案。 –
工作过,谢谢! –