我想保存事件和图像(用于事件)记录。我想在UI中显示上传进度。 事件是文本和位置的小对象。 图像是UIImage照片的大对象。
图像记录是数组中的第一项,事件是第二项。
我创建CKModifyRecordsOperation
并将两个CKRecord
对象设置为recordsToSave
比我设置perRecordProgressBlock
:
[operation setPerRecordProgressBlock:^(CKRecord *record, double progress) {
NSLog(@"#record: %@ progress: %f", record.recordType, progress);
}];
perRecordCompletionBlock
:
[operation setPerRecordCompletionBlock:^(CKRecord *record, NSError *error) {
NSLog(@"#recordSaved: %@ e: %@", record.recordType, error);
}];
我希望看到很多行有两个记录的进度,如:
#record: ImageRecord progress: 0.050000
#record: ImageRecord progress: 0.100000
#record: ImageRecord progress: 0.150000
...
#record: ImageRecord progress: 1.000000
#recordSaved: ImageRecord e: (null)
#record: EventRecord progress: 0.050000
...
#record: EventRecord progress: 1.000000
#recordSaved: EventRecord e: (null)
但是真的在控制台输出中我看到了:
#record: ImageRecord progress: 0.000000
#record: ImageRecord progress: 0.447357
#record: ImageRecord progress: 1.000000
#record: ImageRecord progress: 1.000000
#recordSaved: Event e: (null)
#recordSaved: ImageRecord e: (null)
我该怎么办?
答案 0 :(得分:1)
CKModifyRecordOperation
州的文档:
对于recordsToSave属性中的每个记录,操作对象对该块执行零次或多次。
因此,如果对象的保存操作花费的时间很少,那么可能会发生无法获得进度回调的情况。据我所知,没有办法影响进度通知的频率。