creatorUserRecordID.recordName包含“__defaultOwner__”,而不是显示在仪表板中的UUID

CloudKit下载CKRecord ,并绘制创build者recordName ,我可以看到:

 (lldb) po record.creatorUserRecordID.recordName __defaultOwner__ 

但仪表板显示出真正的价值。

在这里输入图像说明

为什么区别?

我希望我不必仅仅因为这个login的用户而下载?!

“__defaultOwner__”意思是由当前login的iCloud账户拥有的。 所以你可以把它replace成“我”或者这个人的名字。 如果你想找出login用户的recordID,你可以使用asynchronous方法fetchUserRecordIDWithCompletionHandler。

这是一个错误

编辑这个:

 - (void)postMoodFeed:(NSString *)moodFeed { CKRecord *moodRecord = [[CKRecord alloc] initWitenter code herehRecordType:@"Mood"]; moodRecord[@"moodFeed"] = moodFeed`enter code here` [[[CKContainer defaultContainer] publicCloudDatabase] saveRecord:moodRecord completionHandler:^(CKRecord *record, NSError *error) { [self queryMyMood]; }]; } - (void)queryMyMood { // currentUserRecordID is fetched from fetchUserRecordIDWithCompletionHandler: of CKContainer NSPredicate *predicate = [NSPredicate predicateWithFormat:@"creatorUserRecordID = %@", currentUserRecordID]; CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Mood" predicate:predicate]; [[[CKContainer defaultContainer] publicCloudDatabase] performQuery:query inZoneWithID:nil completionHandler:^(NSArray *results, NSError *error) { if (results) { for (CKRecord *eachRecord in results) { // Following logs are all __defaultOwner__ NSLog(@"%@", eachRecord.creatorUserRecordID.recordName); [[[CKContainer defaultContainer] publicCloudDatabase]fetchRecordWithID:eachRecord.creatorUserRecordID completionHandler:^(CKRecord *record, NSError *error) { // All following logs are "Unknown item" error NSLog(@"%@", error); }]; } } }]; }