簡體   English   中英

如何在CloudKit中按用戶查詢?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM