2013-02-20 1 views
2

여기 문서 저장을위한 로컬 루트를 만들었지 만 iCloud.so를 구현하고 싶습니다. iCloud 루트를 만들어야하며 iCloud를 사용할 수 있는지 확인합니다. 메소드와 같은 것을 작성할 수있는 경우.iPhone에서 iCloud Root를 설정하는 방법은 무엇입니까?

앱에 대해 하나 개의 편재 용기가있는 경우
NSURL *url = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]; 

, 당신은 인수 nil를 전달할 수 있습니다 : 여기 당신이 사용하는 iCloud에 "루트"디렉토리를 찾아 내 로컬 루트 방법 코드

- (NSURL *)localRoot { 

if (_localRoot != nil) { 
    return _localRoot; 
} 


NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSString *artdirectoryPath = [documentsDirectory stringByAppendingPathComponent:@"/Me"]; 


_localRoot=[[NSURL alloc]initFileURLWithPath:artdirectoryPath]; 


return _localRoot; 
    } 

답변

0

추가 그렇지 않으면 컨테이너 식별자를 전달해야합니다.

iCloud를 앱에서 사용할 수 있는지 확인하려면 nil을 반환하면 iCloud를 사용할 수 없습니다. 가용성을 확인하는 가장 좋은 방법은 아니지만 잠시 차단 될 수 있습니다.

id token = [[NSFileManager defaultManager] ubiquityIdentityToken]; 

을 그리고 경우에 가용성 변화를 NSUbiquityIdentityDidChangeNotification을 준수해야합니다 : 빠른, 비 블록 체크의 경우,이를 사용합니다.

그러나 이것은 문서로 iCloud를 사용할 수있을만큼 충분하지 않습니다. 해당 디렉토리의 파일을 읽고 쓸 수없고 iCloud에서 올바른 작업을 수행 할 수 없습니다. 절대 최소 요구 사항 :

  • NSMetadataQuery 클라우드 서버에는 있지만 로컬로 다운로드되지 않은 문서를 찾으십시오.
  • -[NSFileManager startDownloadingUbiquitousItemAtURL:error:] iCloud에게 메타 데이터 쿼리로 찾은 문서 다운로드를 시작하도록 안내합니다.
  • NSFileCoordinator을 통한 조정 된 액세스 및 NSFilePresenter을 통한 변경 사항 알림.

Apple은 WWDC의 많은 문서와 비디오를 가지고 있습니다.

관련 문제