Предположим, что я запускаю операцию сохранения с помощью объекта CKModifyRecordsOperation. Могу ли я с уверенностью предположить, что recordToSave объекта будет хранить список записей, заданный в начале, когда я обращаюсь к нему в файле modifyRecordsCompletionBlock, который выполняется после завершения операции.Может ли свойство recordsToSave объекта CKModifyRecordsOperation безопасно использоваться в его измененииRecordsCompletionBlock
Я бы так предположил, но затем я увидел эту строку в документе Apple (в основном не уверен, что они означают под «начальным»: исходное содержимое массива установлено на записи, которые вы указали в initWithRecordsToSave: recordIDsToDelete: метод. Вы можете изменить этот массив по мере необходимости перед выполнением операции.
Если есть редкие обстоятельства, при которых он может изменить, то я хочу, чтобы пойти другой путь в моей повторной попытке логике.
EDIT добавил код
CKModifyRecordsOperation *saveOperation = [[CKModifyRecordsOperation alloc] initWithRecordsToSave:recordsToSave recordIDsToDelete:nil] ;
saveOperation.modifyRecordsCompletionBlock = completionBlock ; //see completion block definition below
[self.publicDatabase addOperation:saveOperation] ;
[self.OperationQ addObject: saveOperation] ; //Saved in Q for later retrieval
completionBlock определяется как
^(NSArray *savedRecords, NSArray *deletedRecordIDs, NSError * operationError){
if(operationError)
{
DDLogError(@"Save of Touch event records failed with error %@",operationError) ;
//Retry, can I do this and safely assume first record retrieved here is the first record I inserted into original recordsToSave array
CKRecord *cardinalRecord = self.OperationQ[0].recordsToSave[0] ;
//Read a field from it to decide how to handle retry (e.g: retry after delay if important set of records, don't retry if not etc)..
}
else
{
//Handle success case
}
}
Ваш вопрос будет в значительной степени полезен из некоторого соответствующего кода. Покажите код, демонстрирующий то, что вы просите. – rmaddy
Я добавил код в приведенное выше изменение. –