[英]How to query by user in CloudKit?
我想查詢當前用戶創建的所有記錄。 我可以成功獲取當前用戶的CKRecordID,但我似乎無法正確查詢它。 以下是我正在使用的代碼。 我究竟做錯了什么?
[[CKContainer defaultContainer] fetchUserRecordIDWithCompletionHandler:^(CKRecordID *recordID, NSError *error) {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"creatorUserRecordID = %@", recordID];
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"MyEntity" predicate: predicate];
[database performQuery:query inZoneWithID:nil completionHandler:^(NSArray *results, NSError *error) {
//results are empty
}];
}];
順便說一下,我在數據庫中創建了幾個“MyEntity”記錄。
如果您在記錄類型中查看CloudKit儀表板並打開下拉菜單“元數據索引字段”,那么您會發現其中沒有一個是可搜索的。 直到昨天他們都是。 今天早上我注意到了這一點,因為我無法使用以下內容對creationDate進行排序:
[NSSortDescriptor(key: "creationDate", ascending: false)]
我希望這是一個臨時的CloudKit問題,很快就會解決。 否則,您必須自己添加這些字段來創建變通方法。 除此之外,我希望CloudKit錯誤而不是0記錄。
更新:我剛剛注意到可以再次設置可排序和可查詢的字段。 我剛試過這個並且它有效。 我在我的演示中添加了creatorUserRecordID的查詢。 問題是只返回自設置以來的新記錄。 舊記錄不會顯示。 如果你想看演示,請看看: https : //github.com/evermeer/EVCloudKitDao
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.