我正在构建一个需要在核心数据中存储某种矩阵或矢量数据的iPhone应用程序。由于某些未知原因,iPhone SDK在其基础类中不包含任何类型的矩阵数据结构,因此我构建了自己的数据结构,该结构使用NSMutableArray
NSMutableArrays
来存储数据。到目前为止一切都很好。
我想将此数据结构存储在我的核心数据存储中,并且我已经阅读了有关使用transformable attributes存储非标准结构的信息。当我尝试存储数据结构时,出现以下错误:[FCMatrix encodeWithCoder:]: unrecognized selector sent to instance
我正在运行的代码如下,基本上只是在我的实体中设置属性:
[collection setMatrix:matrix];
我在这一点上的假设是,由于矩阵是一个可转换的属性,而我的FCMatrix类是一个自定义对象(从NSObject继承),我需要在我的数据结构类中实现方法encodeWithCoder
,以便Core数据可以正确编码,存储,然后解码数据以重新创建我的数据结构。任何人都可以解释这样做的最佳方式吗?
另一个想法 - 我想知道你的想法 - 是重建我的FCMatrix类来从NSMutableArray创建子类。如果NSMutableArray可以转换,那么我将被设置。
或者,我确信这是太多的工作,必须有一个更简单的方法来做到这一点。有没有人有经验在核心数据中存储矩阵数据?
答案 0 :(得分:0)
或许考虑将数组转换为字节,这些字节可以存储在NSData
对象中并放入二进制属性中。
答案 1 :(得分:0)
我想出了解决自己问题的方法:
NSMutableArray
个对象存储为可转换的属性。