ios - 核心数据与 iCloud 设计

标签 ios core-data icloud

我在 iOS 7 上,想通过 iCloud 使用核心数据,这很好用,我想就以下问题提出一些意见。

我的一些核心数据对象有相关的图像/大文本文件,我将它们作为文件存储在文件系统上,并且只是将这些项目的 url 设置为字符串属性。现在很明显,这不仅仅适用于 iCloud 核心数据同步,因为 iCloud 没有这些文件的概念。我想知道您是否对如何处理此问题有任何建议?

1) 我可以将图像数据和大文本文件直接存储为核心数据属性,但这似乎不是最好的方法

2) 我也可以使用 iCloud 来存储文档,然后以某种方式尝试在不同的 iOS 设备中保持文件同步,但这可能会变得困惑。

3) 一些其他的解决方案。

有什么建议吗?

问候

丹尼尔

最佳答案

如果您以编程方式设置模型,请向 setAllowsExternalBinaryDataStorage: 添加一条消息,以允许 Core Data 决定何时将其自动保存为记录或单独文件。 Core Data 在决定使用外部文件时会为您管理它们,因此它也应该在 iCloud 中“正常工作”。

NSAttributeDescription * imageAttribute;
//Initialise, setup, add to model, etc
[imageAttribute setAttributeType: NSBinaryDataAttributeType];
[imageAttribute setAllowsExternalBinaryDataStorage:YES];

模型编辑器 UI 中的属性也有相应的复选框。

https://developer.apple.com/library/ios/documentation/Cocoa/Reference/CoreDataFramework/Classes/NSAttributeDescription_Class/reference.html#//apple_ref/doc/uid/TP30001175-SW26

关于ios - 核心数据与 iCloud 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19867551/

相关文章:

ios - NSURLSessionDownloadTask 出现存储几乎已满磁盘警告的问题

swift - 如何在编辑 tableView 后更新模型

ios - 使用 [NSFileManager URLForUbiquityContainerIdentifier :] and [NSFileManager ubiquityIdentityToken]? 之间的主要区别是什么

iphone - 将联系人从一个源复制到另一个源

ios - 将文本从文本文件传递到 "Swift 3"中的 UITextView

ios - Objective-C 回调/ block 模式

ios - 添加一些数据后复选标记重复....当我进行检查时

macos - 在核心数据中存储文件路径并保证一致性

iphone - 取消编辑: NSUndoManager or separate NSManagedObjectContext for editing?

icloud - 如何删除 CloudKit 容器?