2015-05-28 21 views
5

CloudKit bir CKRecord İndirilmesi ve yaratıcısı recordName çizdirirken gösterilen yerine "__defaultOwner__" içerir, bu görebilirsiniz:creatorUserRecordID.recordName UUID Pano

(lldb) po record.creatorUserRecordID.recordName 
__defaultOwner__ 

ama, Dashboard bir gerçek değerini gösterir.

enter image description here

Neden fark ?!

Umarım sadece bu oturum açmış olan kullanıcıdan önce indirmem gerekmez. onun şu anda iCloud hesabı oturum ait anlamına "__defaultOwner__"

- (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); 
       }]; 
      } 
     } 
    }]; 
} 

cevap

0

bir hata

düzenlemek budur. Böylece, "Me" ile ya da sahibinin adıyla değiştirebilirsin. Oturum açmış kullanıcının kayıt kimliğini öğrenmek istiyorsanız, asenkronize yöntem fetchUserRecordIDWithCompletionHandler yöntemini kullanabilirsiniz.

4

:

+0

Ayrıca, bu değişkende bulunabilir: CKCurrentUserDefaultName: https://developer.apple.com/documentation/cloudkit/ckcurrentuserdefaultname?language=objc –