2013-02-03 4 views
3

나는 (A UIManagedDocument 등) 1 단일 코어 데이터 데이터베이스와 매우 간단 신발 상자 스타일의 iOS 앱을 가지고 iCloud에 지원을 추가하려고 생각. 등, 이미UI (Managed) 문서가 이미 NSMetadataQuery 대신 URLForUbiquityContainerIdentifier + Path를 통해 iCloud에 있는지 확인하십시오.

/개방을 저장, 시작 *에서 새로운 UIManagedDocument를 작성하기 전에 클라우드 * 에 데이터베이스 를 존재하는 가있는 경우 물론


나는 확인해야

내가 은 이미 파일 이름이이므로 1 개의 문서 또는 전혀 문서가 없다는 사실을 알고 있기 때문에 실제로는 얻지 못했습니다.

  1. 정확한 파일 이름 위한 조건으로 NSMetaDataQuery을 시작

    다음 결과에서 fileURL를 얻을 수 (및 다운로드 명시 적으로?) 하나가있는 경우를 열거 나

  2. 단지 추가 + URLForUbiquityContainerIdentifier에서 생성 iCloudDBURL[[NSFileManager defaultManager] fileExistsAtPath:self.iCloudDBURL] 를 사용할 수 있습니까? 이 URL은 로컬 URL 일 뿐이며 "실제"클라우드를 자동으로 확인하지는 않습니다. ..


내가 UIManagedDocument의 사용 앱 이런 종류의 "올바른"방법이되지 않을 수도 있습니다 알고 있지만, 나는 쉽게 거라고 생각 나는 시도 할 수

답변

3

당신이 필요 NSMetadataQuery 접근 방식을 사용하십시오.

iCloud에서 iOS를 사용할 때 문서는 자동으로 다운로드되지 않으므로 요청할 때 다운로드됩니다. 당신이 제안한대로 NSFileManager을 사용하면 파일이 로컬 장치에 존재했는지 여부 만 알려줍니다. 그러나 파일은 로컬에 아직 다운로드되지 않은 상태로 클라우드에 존재할 수 있습니다. NSMetadataQuery을 사용하면 이 어디에 있든간에 인 문서가 클라우드에 있지만 실제로 다운로드되지 않은 경우에도 알 수 있습니다. 문서가 다른 장치에서 작성된 경우 해당 문서를 찾을 수 있습니다. 또한 사용자가 앱을 삭제했다가 다시 설치하는 경우에도 적용되지만 클라우드 데이터는 삭제되지 않습니다. 다운로드되지 않았더라도 클라우드 데이터가 있는지 확인합니다.

UIManagedDocument을 사용하고 있으므로 특정 전화를 걸지 않아도됩니다. 전화를 걸면 해당 전화가 처리됩니다.