gpt4 book ai didi

ios - NSKeyedArchiver 和 iCloud

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:11 26 4
gpt4 key购买 nike

现在在我的应用程序中,我有一个顶级对象,它带有一个 -(void)archive 方法,它将自身归档到应用程序的文档目录中。

我想知道是否可以通过更改文件路径将存档简单地保存到 iCloud 而不是本地。

我已经阅读了很多关于使用 iCloud 的文章,但我还没有看到这个问题得到解决。我猜这是不可能的,但我想确定。

谢谢。

最佳答案

您不应将文件直接保存到 iCloud,而应将其保存在本地,然后将其移动到与您的应用关联的 iCloud 文件夹。

首先你需要看file coordination您应该使用它来将文件保存到 iCloud。

然后您只需检索要保存的文件的 URL 或路径。您可以通过以下调用获取您的 iCloud 目录:[[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:@"myIdentifier"]; 然后附加适当的路径组件。

最后,您将文件(例如 myFile.dat)保存到临时本地文件夹,例如应用程序的文档目录,然后调用:[[NSFileManager defaultManager] setUbiquitous:YES itemAtURL:/*local URL*/destinationURL:/*Cloud URL*/error:&error]; 这会将文件从本地文件夹移动到 iCloud 文件夹,然后由操作系统的同步守护进程完成剩下的工作。

如果您保存到 iCloud 文档目录中,您的文件将通过 iCloud 驱动器对用户可见。如果您保存到不同的 iCloud 目录,用户将无法看到该文件。

注意:您需要使用 NSMetadataQuery发现由另一台设备保存到 iCloud 的文件。此外,iOS 设备不会自动下载您保存到 iCloud 的文件;您需要专门调用 [[NSFileManager defaultManager] startDownloadingUbiquitousItemAtURL:url error:&error]; 来启动下载。 OS X 设备将自动下载 iCloud 文件。您可以使用 NSFilePresenter在应用程序的生命周期内监视 iCloud 目录更改的协议(protocol)(以检测另一台设备保存的文件)。

关于ios - NSKeyedArchiver 和 iCloud,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27804028/

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