我有一个“表”可能有许多记录,当添加一个新记录时,我需要知道当前表中已经有多少条记录,因为我在计算某些值时使用它.我找到的最接近的事情是请求所有这样的条目:
var query : CKQuery = CKQuery(recordType: "Stars",predicate: NSPredicate(format: "mass > 0")) var request : CKQueryOperation = CKQueryOperation(query: query) var starCount = 0 request.queryCompletionBlock = { (cursor:CKQueryCursor!,error:NSError!) in if error { completionHandler(ECOResponse.error(error.description),starCount) } else { completionHandler(ECOResponse.ok(),starCount) } } request.recordFetchedBlock = { (record:CKRecord!) in starCount += 1 }
我希望queryCompletionBlock给出一个计数或结果数组以及CKQueryCursor,但不幸的是它没有.
有没有办法计算表中的行数?
不,不可能获得符合您的查询的记录总数.也可以列举结果,答案可能是错误的. CloudKit返回的记录数并不固定. CloudKit有一个机制来决定要返回多少条记录.可以在CKQueryOperation对象上将其设置为固定数字.默认值为:
operation.resultsLimit = CKQueryOperationMaximumResults;
该物业的文件说:
When using that value,the server chooses a limit that aims to provide an optimal number of results that returns as many records as possible while minimizing delays in receiving those records. However,if you know that you want to process a fixed number of results,change the value of this property accordingly.
如果您的计数与此固定数量相同,那么可能比您的查询返回的记录多.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。