2014-12-03 4 views
1

이벤트 및 이미지 (이벤트 용) 레코드를 저장하려고합니다. UI에서 진행 상황을 보여주고 싶습니다. 이벤트가 텍스트와 위치가 거의없는 개체입니다. UIImage로 사진이있는 큰 물체입니다.CloudKit 레코드 저장 진행

이미지 레코드가 배열의 첫 번째 항목이고 이벤트가 두 번째입니다.

나는 CKModifyRecordsOperation을 만들고 내가 perRecordProgressBlock 설정보다 recordsToSave

CKRecord 객체를 설정합니다

[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

안녕하세요. CloudKit을 사용하여 원활한 진행을위한 솔루션을 찾을 수 있었습니까? – drdrdrdr

+1

@drdrdrdr 불행히도, 아니요. 내 솔루션은 작업의 가치에 따라 진행 상황을 대략적으로 보여 주지만 작업의 정확한 값으로 진행 상황을 변경하는 것은 아닙니다. – AlKozin

답변

1

CKModifyRecordOperation에 대한 설명 : 조작 개체는 recordsToSave 등록 정보의 각 레코드에 대해이 블록을 0 번 이상 실행합니다.

개체의 저장 작업이 거의 시간이 걸리지 않으면 진행률 콜백이 발생하지 않을 수 있습니다. 내가 아는 한 진행 통지의 빈도에 영향을 줄 수있는 방법은 없습니다.

+0

네, 와이파이에서는 문제 없습니다. 가장자리를 절약하는 데는 많은 시간이 걸리지 만 느린 연결과 빠른 연결의 경우에는 세 가지 진행 상황 콜백 만 표시됩니다. – AlKozin

+0

아마도 이것이 버그입니까? 중간 및 끝에서 작업 시작시 콜백을받을 때 이점이 없습니다. – AlKozin