CloudKitlogging保存进度

我想保存事件和图像(事件)logging。 我想在UI中显示上传进度。 事件是文本和位置的小对象。 图像是与UIImage照片的大对象。

图像logging是数组中的第一项,事件是第二项。

我创buildCKModifyRecordsOperation并将两个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); }]; 

我希望能看到很多像两行logging一样的行:

 #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) 

我该怎么办?

CKModifyRecordOperation的文档声明:操作对象为recordsToSave属性中的每个logging执行零个或多个此块。

所以如果一个对象的保存操作花费很less的时间,那么可能会发生你不会得到一个进度callback。 据我所知,没有办法影响进度通知的频率。