采用iCloud设计的核心数据

Dan*_*iel 5 core-data ios icloud

我在iOS 7上想要使用iCloud的核心数据,这很好用,我想要输入的问题如下.

我的一些核心数据对象具有相关图像/大文本文件,我将其作为文件存储在文件系统中,只是将这些项目的URL设置为字符串属性.现在显然这不会与iCloud核心数据同步一起工作,因为iCloud没有这些文件的概念.我想知道你是否有任何关于如何处理这个问题的建议?

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

2)我可以使用iCloud来存储文件,然后以某种方式尝试在不同iOS设备中的文件之间保持同步,但这可能会变得混乱.

3)其他一些解决方案.

有什么建议?

问候

丹尼尔

Fru*_*eek 5

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

NSAttributeDescription * imageAttribute;
//Initialise, setup, add to model, etc
[imageAttribute setAttributeType: NSBinaryDataAttributeType];
[imageAttribute setAllowsExternalBinaryDataStorage:YES];
Run Code Online (Sandbox Code Playgroud)

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

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