2012-03-05 3 views
2

iCloud를 사용하여 질문의 코드와 비슷한 UIDocument 하위 클래스와 함께 내 앱의 장치간에 사용자 XML 파일을 동기화합니다. http : //stackoverflow.com/questions/7795629/icloud-basics-and-code- 견본. 하지만 언제 어떻게 충돌을 감지해야하는지 확신 할 수 없습니다. 나는 sdk 의사를 읽고 인터넷을 검색했지만 상세한 정보가있는 정보는 찾지 못했습니다. 우리는 NSNumber * conflict와 같은 코드를 사용할 수있는 것 같습니다. [url getResourceValue : & 충돌 한 키 : NSURLUbiquitousItemHasUnresolvedConflictsKey 오류 : nil];iCloud 충돌을 감지하는시기와 방법은 무엇입니까?

하지만 내 앱에서는 항상 "충돌"에 대해 진정한 가치를 부여하는 것처럼 보입니까? 또한 충돌을 감지해야하는지 잘 모르겠다. 추측은 UIDocument 하위 클래스의 contentsForType 메서드가 호출되기 전에 발생했다. 누군가가 위대한 것이 될 수있는 힌트를 줄 수 있다면.

답변

1

UIDocumentStateChangedNotification을 준수해야합니다. 문서의 documentState 속성에 UIDocumentStateInConflict 플래그가 설정되어 있으면 충돌이 발생합니다. 문서는 동시에 여러 상태가 될 수 있으므로 ==으로 확인하지 말고 if (document.state & UIDocumentStateInConflict) {...과 같은 것을 사용하십시오.

그러면 otherVersionsOfItemAtURL: 클래스 메서드가 충돌하는 버전을 NSFileVersion으로 가져올 수 있습니다.

Document-Based App Programming Guide for iOS에있는 chapter on resolving document conflicts에서 자세한 내용을 확인할 수 있습니다.

관련 문제