2012-01-16 8 views
4

Mac OS X (10.7 Lion) 비 문서 기반 응용 프로그램에서 동일한 응용 프로그램의 다른 인스턴스간에 데이터를 공유 할 수 있도록 iCloud 지원을 포함하고 싶습니다. Mac (iOS 기기가 아님). Apple 문서를 조금이라도 서핑을하다 보면, iCloud에서 키 값 목록 저장소를 사용해야한다는 것을 알았습니다. 업로드 할 문서에는 이름 (문자열)과 같은 간단한 속성이있는 사용자 정의 개체의 배열 만 포함되어 있기 때문에, , 날짜 (날짜 개체), ...). 이 파일은 iCloud에 업로드하려는 유일한 파일입니다. 응용 프로그램 내에서 이미 NSFileManager- (void)writeData:(NSData*)data toPath:(NSString *)path을 사용하여 파일을 디스크에 저장하는 방법을 구현했습니다 (또는 잊어 버렸습니다). NSFileManager을 다시 사용하여 파일에서로드됩니다 (- (NSData *)dataInFileAtPath:(NSString*)path 또는 그 무엇이든지 사용). 파일은 사용자의 Application Support 디렉토리에있는 서브 디렉토리에 저장됩니다. 새 항목이 배열에 추가되거나 배열의 항목이 수정 될 때마다 저장됩니다.Mac OS X Lion 용 응용 프로그램에서 iCloud 지원

튜토리얼에 링크를 제공하거나 올바른 방향으로 나를 가리킬 수 있는지, iCloud에 파일을 쓰고 같은 애플리케이션의 다른 인스턴스에서 다시 다운로드 할 수 있는지 궁금합니다. 내가 찾은 모든 자습서와 문서는 iOS 용이었습니다. 어떤 도움이라도 대단히 감사하겠습니다!

미리 감사드립니다.

답변

3

은 그냥이 아이 클라우드에 쓰여 것을 제외하고는 NSUserDefaults 같은 많은입니다 NSUbiquitousKeyValueStore를 사용합니다. 당신은 맥 앱 프로그래밍 가이드의 iCloud Storage 절을 읽어야합니다,하지만 당신은 같은 것을 엑스 코드에서 응용 프로그램 대상의 요약 탭에서 자격을 가능하게하고 일을 같이 간단 할 수 있습니다해야 할 일 :

NSData *dataToStore = [NSKeyedArchiver dataWithRootObject:yourArray]; 
[[NSUbiquitousKeyValueStore defaultStore] setData:dataToStore forKey:@"yourKey"]; 

그런 다음 데이터를 검색, 단지

NSData *retrievedData = [[NSUbiquitousKeyValueStore defaultStore] dataForKey:@"yourKey"]; 
NSArray *retrievedArray = [NSKeyedUnarchiver unarchiveObjectWithData:retrievedData]; 

을 여기에 한 가지주의해야 할 점은이 사용자 정의 객체의 배열 작업을 위해, 이러한 개체는 모든 NSCoding protocol를 구현해야한다는 것입니다. 이는 두 가지 방법을 구현하는 것일뿐입니다. 여기에 좋은 tutorial입니다.

P. OS X 또는 iOS 용으로 개발할 때도 동일한 API를 사용하므로 iOS 용 iOS 튜토리얼을 따라갈 수 없습니다.