2014-12-03 95 views
1

我想保存事件和圖像(用於事件)記錄。我想在UI中顯示上傳進度。 事件是包含文本和位置的小對象。 圖像是帶UIImage照片的大對象。CloudKit記錄保存進度

圖像記錄是數組中的第一項,事件是第二項。

創建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

嘿AlKozin!您是否設法使用CloudKit找到順利(呃)進展的解決方案? – drdrdrdr 2016-09-16 18:51:18

+1

@drdrdrdr不幸的是,沒有。我的解決方案是根據操作的價值大致顯示進度,但不會將進度更改爲操作的精確值。 – AlKozin 2016-09-17 15:11:18

回答

1

CKModifyRecordOperation的文檔狀態: 操作對象對recordsToSave屬性中的每個記錄執行此塊零次或多次。

因此,如果一個對象的保存操作花費很少的時間,那麼可能會發生你不會得到進度回調。據我所知,沒有辦法影響進度通知的頻率。

+0

好的,這是沒有問題的WiFi。在邊緣保存方面需要花費很多時間,但在任何情況下我都只能看到三個進度回調:在慢速連接和快速連接上。 – AlKozin 2014-12-04 03:04:54

+0

也許這是一個錯誤?我在操作開始時,中間和結束時都會得到回調,這並沒有什麼好處。 – AlKozin 2014-12-08 09:40:09