gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 19:44:47 25 4
gpt4 key购买 nike

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

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

提前致谢!

最佳答案

只需使用 NSUbiquitousKeyValueStore ,它与 NSUserDefaults 非常相似,只是它是写入 iCloud 的。您应该阅读 iCloud Storage Mac App Programming 指南的部分,但您需要做的可能就像在 Xcode 中 App Target 的 Summary 选项卡中启用权利一样简单,然后执行类似以下操作:

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 .

附言无论您是为 OS X 还是 iOS 进行开发,您都使用相同的 API,因此您没有理由不按照 iOS 教程进行 iCloud 存储。

关于objective-c - Mac OS X Lion 应用程序中的 iCloud 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8881078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com