Objective c Mac OS X Lion应用程序中的iCloud支持

Objective c Mac OS X Lion应用程序中的iCloud支持,objective-c,nsfilemanager,icloud,Objective C,Nsfilemanager,Icloud,在Mac OS X(10.7 Lion)非基于文档的应用程序中,我希望包括iCloud支持,这样我就可以在其他Mac(而不是iOS设备)上的同一应用程序的其他实例之间共享数据。在浏览了一下Apple文档之后,我发现我应该在iCloud中使用键值列表存储,因为我要上传的文档只包含一个自定义对象数组(具有简单属性,例如名称(字符串)、日期(日期对象),…)。这个文件是我唯一想上传到iCloud的东西。在应用程序中,我已经使用NSFileManager的-(void)writeData:(NSData

在Mac OS X(10.7 Lion)非基于文档的应用程序中,我希望包括iCloud支持,这样我就可以在其他Mac(而不是iOS设备)上的同一应用程序的其他实例之间共享数据。在浏览了一下Apple文档之后,我发现我应该在iCloud中使用键值列表存储,因为我要上传的文档只包含一个自定义对象数组(具有简单属性,例如名称(字符串)、日期(日期对象),…)。这个文件是我唯一想上传到iCloud的东西。在应用程序中,我已经使用
NSFileManager
-(void)writeData:(NSData*)data-toPath:(NSString*)path实现了将文件保存到磁盘(或者不管是什么,我已经忘记了)。再次使用
NSFileManager
从文件中加载(使用
-(NSData*)datainfieatpath:(NSString*)path
,或其他任何形式)。该文件存储在用户的应用程序支持目录的子目录中。每当向数组中添加新项或修改数组中的项时,都会保存该项

我想知道是否有人可以提供一个教程的链接,或者为我指明正确的方向,将该文件写入iCloud,然后在同一应用程序的其他实例上再次下载?我找到的所有教程和文档都是针对iOS的。任何帮助都将不胜感激

提前谢谢

Ben

只需使用,它非常类似于
NSUserDefaults
,只是它是写入iCloud的。您应该阅读Mac App Programming guide(Mac应用程序编程指南)的部分,但您需要做的可能很简单,即在Xcode中的应用程序目标的摘要选项卡中启用权限,然后执行以下操作:

NSData *dataToStore = [NSKeyedArchiver dataWithRootObject:yourArray];
[[NSUbiquitousKeyValueStore defaultStore] setData:dataToStore forKey:@"yourKey"]; 
然后,要检索数据,只需执行以下操作

NSData *retrievedData = [[NSUbiquitousKeyValueStore defaultStore] dataForKey:@"yourKey"];
NSArray *retrievedArray = [NSKeyedUnarchiver unarchiveObjectWithData:retrievedData];
这里需要注意的一点是,要使用自定义对象数组,这些对象必须全部实现。这只是实施两种方法的问题;这是一个好主意

另外,无论是为OS X还是iOS开发,您都使用相同的API,因此没有理由不遵循iCloud存储的iOS教程