initWithCoder和encodeWithEncoder地狱。这可以简化吗?

时间:2015-10-06 05:36:54

标签: objective-c xcode nscoder initwithcoder

有几十个模型,每个模型都有几十个属性,都可以使用NSCoder协议和NSKeyed(Un)archiver保存到磁盘,为我创建和维护模型需要做很多工作iOS应用程序。有一个模型的十几个属性,我必须:

  1. 定义了十几个属性(这是好的,因为它们必须在某处定义)

  2. 填写initWithCoder:方法,即十几行和二十几次输入/复制粘贴属性名称(或常量键),3)一些用于{{1} }。

  3. 错误的风险(无论是打字,复制还是更改(或不更改),encodeWithCoder:encodeObject:这样的事情都是巨大的。此外,它还有很多错误。只是很多手工工作,我不想这样做。毕竟,我们有计算机为我们做这件事。

    首先,我研究了一些简化工作的方法。像这样:

    encodeInteger:

    但这仍然是很多工作。这可以做任何simpeler吗? 我不喜欢在运行时使用内省或其他东西。

    我正在考虑一些Python脚本,它生成/操作模型文件并将它们添加到Xcode中。这可以基于一些JSON描述文件。

    让Xcode在预构建阶段自动运行它会很棒。这意味着我定义每个模型和每个属性一次的单个地方,并且永远不必担心错误和属性我忘记编码/解码。

    那里有类似的东西吗?是否有方法可以将文件添加到Xcode项目中,而不会弄乱一些不可读的Apple" XML"项目文件?那么在目标中包含标题呢?或者也许还有其他一些很好的方法来保存我的所有工作?

0 个答案:

没有答案