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。 据我所知,没有办法影响进度通知的频率。