Używam CKModifyRecordsOperation
do zapisywania zestawu rekordów, a jeśli mam połączenie internetowe, wszystko działa dobrze i jest wywoływany blok zakończenia. Ale gdy nie mam połączenia, blok zakończenia nie jest wywoływany i nie otrzymuję informacji, że moje operacje zawiodły.CKModifyRecordsOperation modifyRecordsCompletionBlock nie jest wywoływany
Używam następujący kod w bloku zakończenia
modifyOperations.modifyRecordsCompletionBlock = ^(NSArray *savedRecords, NSArray *deletedRecordIDs, NSError *error)
{
if(error){
NSLog(@"Error: %@", error.localizedDescription);
}
item.creatorRecordId = record.recordID;
};
a potem mam wykonywania operacji przy użyciu
[self.publicDB addOperation:modifyOperations];
pomysłów w jaki sposób mogę uzyskać informację, czy operacja nie powiodła się na przykład w przypadku, gdy nie ma połączenia z Internetem?
Zajmuję się tym ostatnio. Jeśli nie ma Internetu, operacja nie zawiedzie. Po prostu czeka. Po powrocie połączenia z Internetem operacja zostanie zakończona. Jedną z opcji (którą zaimplementowałem) było sprawdzenie dostępności przed dodaniem operacji do bazy danych. – rmaddy
Tak, też o tym myślałem. Ale może wystąpić problem z tym rozwiązaniem, jeśli połączenie spadnie zaraz po sprawdzeniu osiągalności i przed wykonaniem operacji ... Zastanawiam się nad wprowadzeniem timera, a następnie po pewnym czasie sprawdź, czy osiągalna jest, jeśli operacja nie zostanie uruchomiona. Ale znowu pojawia się pytanie, jaki powinien być ten czas. – Wojtek