CloudKit: creatorUserRecordID de CKRecord Issue (o ¿Bug?)

Después de iOS 8.3, si el logging es creado por la count actual, su creatorUserRecordID será como

CKRecordID: [Alguna dirección]; defaultOwner : (_ defaultZone: defaultPropietario )

Y luego, si obtiene este recordID usando fetchRecordWithID: completionHandler: desde CKDatabase, siempre devolverá error como

CKError [Alguna dirección]: "Artículo desconocido" (11/2003); server post = "Registro no encontrado"; uuid = [Algunos UUID]; ID del contenedor = [Algunos ID del contenedor]

Nunca me he topado con este problema.

¿Es un error, o debería search un logging de recordID como este ( defaultPropietario ) de otra manera?

EDITAR (agregar código de ejemplo)

- (void)postMoodFeed:(NSString *)moodFeed { CKRecord *moodRecord = [[CKRecord alloc] initWithRecordType:@"Mood"]; moodRecord[@"moodFeed"] = moodFeed [[[CKContainer defaultContainer] publicCloudDatabase] saveRecord:moodRecord completionHandler:^(CKRecord *record, NSError *error) { [self queryMyMood]; }]; } - (void)queryMyMood { // currentUserRecordID is fetched from fetchUserRecordIDWithCompletionHandler: of CKContainer NSPnetworkingicate *pnetworkingicate = [NSPnetworkingicate pnetworkingicateWithFormat:@"creatorUserRecordID = %@", currentUserRecordID]; CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Mood" pnetworkingicate:pnetworkingicate]; [[[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); }]; } } }]; } 

EDIT 2 de julio de 2015

Eso es un error.

Después de informar a Apple, solucionaron este problema en iOS 9 Beta 2.

De hecho, parece una nueva funcionalidad.

Lo que podría hacer es probar primero si eachRecord.creatorUserRecordID.recordName == " defaultOwner " y si ese fuera el caso, podría get el logging de la ID que obtuvo de the currentUserRecordID

Pero sería mejor no usar creatorUserRecordID para ninguna funcionalidad en su aplicación. Podría mejor agregar un nuevo campo CKReference y siempre llenarlo con el file currentUserRecordID. Entonces, incluso si tiene un process que migra datos, aún sabría quién creó ese logging originalmente.

Tal vez esto ayude: he descubierto que si utiliza [CKFetchRecordsOperation fetchCurrentUserRecordOperation] al comienzo del flujo de trabajo de su aplicación, no tendrá defaultCwnerCKRecordIDs de la nada.