Testowałem CloudKit, ponieważ chcę opublikować aplikację z nią korzystającą, gdy pojawi się wydanie iOS8. Wydaje się dość proste, aby zapisać dane za pomocą poniższego kodu:Zapisywanie zmodyfikowanych danych w CloudKit
CKRecordID * recordID = [[CKRecordID alloc] initWithRecordName:@"basicRecord"];
CKRecord * record = [[CKRecord alloc] initWithRecordType:@"basicRecordType" recordID:recordID];
[record setValue:@"defaultValue" forKey:@"defaultKey"];
CKDatabase *database = [[CKContainer defaultContainer] publicCloudDatabase];
[database saveRecord:record completionHandler:^(CKRecord *record, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
} else {
NSLog(@"Record Saved!");
}
}];
i nie otrzymuję z tego żadnych błędów. Jednakże, jeśli próbuję ponownie uruchomić kod, może dlatego, że zmieniły się wartości zapisu do
[record setValue:@"newValue" forKey:@"defaultKey"];
Otrzymuję błąd, który nasuwa się pytanie, jak mogę iść o zapisaniu zmodyfikowanego fragmentu danych. W końcu jest to podstawowa część ratowania rzeczy w chmurze. Błąd jest poniżej i każda pomoc będzie bardzo mile widziana, nie wahaj się poprosić o dalsze informacje.
Error: <CKError 0x17024afb0: "Server Record Changed" (14/2017); "Error saving record <CKRecordID: 0x144684a80; basicRecord:(_defaultZone:__defaultOwner__)> to server: (null)"; uuid = 182C497F-966C-418A-9E6A-5563BA6CC6CD; container ID = "iCloud.com.yourcompany.CloudKit">