2012-07-03 5 views
0

저는 iCloud 호환 응용 프로그램에서 작업 중이며 파일 업로드/다운로드 중 또는 완료 여부를 감지하는 방법을 연구 중입니다. NSURL "키" (예 : NSURLUbiquitousItemIsDownloadingKey 또는 NSURLUbiquitousItemIsUploadingKey)으로이를 감지 할 수 있습니다. 나는 아직도 프로그래밍에 대해 배우고있다. 그래서이 키들은 무엇인가? 그것들을 사용하여 파일의 상태를 감지하는 방법 (파일을 iCloud로 업로드했는지 또는 다운로드를 완료했는지 (앱이 어느쪽에 있든 상관없이) 앱이 알기를 원합니다.)키는 무엇이며 어떻게 사용합니까?

resourceValuesForKeys:error:을 사용하여 이러한 키의 상태를 쿼리 할 수 ​​있으므로이 문을 IF 문에 넣고 "예"또는 "아니오"와 같은 결과가 예상되는지 확인하십시오. 당신의 도움을 주셔서 감사합니다.

if ([destination resourceValuesForKeys:[NSArray arrayWithObject:NSURLUbiquitousItemIsUploadingKey] error:NULL]) { 

    //is uploading?? 

} 

답변

1

당신의 제안 코드는 거의 가능한 보이지만 한가지 : 키 값을 가진 the documentation for those keys에 명시된있는 당신이 전달 상수와 동일 사전을 반환 resourceValuesForKeys:error:. NSURLUbiquitousItemIsUploadingKey의 경우 값은 NSNumber 인스턴스이며 BOOL 값을 래핑합니다. 당신은 단지 하나의 키를 조회하는 경우

NSError *error; 
NSArray *keys = [NSArray arrayWithObject:NSURLUbiquitousItemIsUploadingKey]; 
NSDictionary *values = [destination resourceValuesForKeys:keys error:&error]; 
if (values == nil) 
    NSLog(@"error: %@", error); 
else if ([[values objectForKey:NSURLUbiquitousItemIsUploadingKey] boolValue]) 
    NSLog(@"uploading"); 
else 
    NSLog(@"not uploading"); 

, 당신은 좀 더 간결 getResourceValue:forKey:error:를 사용할 수 있습니다 destination 가정

그래서 ... 당신의 편재성 컨테이너의 항목에 NSURL를 가리키는 것입니다.

관련 문제