2012-03-05 127 views
11

我们正在寻找一种方法来记录核心数据实体。到目前为止,我想出的唯一真正的选择是:用户信息条目记录核心数据实体属性

  1. 文档外部使用UML或其他一些标准的
  2. 创建每个实体NSManagedObject子类,并使用代码注释
  3. 使用用户信息字典创建一个键值对保存一个字符串评论

选项1感觉太多额外的工作和事情,几乎肯定会过时的99%的时间的。

选项2感觉自然且比选项1更正确。最大的疑惑在于,如果使用Xcode重新生成此模型类,那些注释可能会丢失。

选项3感觉有点比选项2少正确的,但增加自动化的可能性有关于元数据提取的额外优势。例如,在我们的一个应用程序中,我们需要密切关注我们在设备上本地存储的内容以及同步到iCloud。使用用户信息字典,很容易自动创建某种形式的制造品,可以在内部和外部(由客户端)检查是否符合规定

所以我的问题是使用用户信息是否不合适字典为此目的?还有其他的选择我错过了吗?

回答

5

选项2是我每次使用的。如果你看看你的核心数据模型(something.xcdatamodeld或something.xcdatamodel),你会看到类似下面的图片。

core data entity in XCode

你可以配合你的实体,任何你想要的类,然后把意见在那里。如果你保持你的实体名称与你的类名相同,以明确你做了什么,这会有所帮助。

此外,这也使您能够添加自动化。您可以通过创建自定义获取者和设置者(访问器方法)和自定义方法来实现此目的。

2

我使用选项2和类别。我将让XCode生成NSManagedObject子类,并在这些子类中使用一个类别。对于类别,我不会放弃对类别所做的更改,可以记录,制作自定义getter和setter,而且我仍然可以使用生成的子类。

+0

完全同意。你不应该手动修改由Xcode生成的自动生成的代码,因为下一个处理你的代码的人不会知道你已经这样做了,并且在他重新生成类时会删除你的所有评论。类别是一个整洁的解决方法。 – Ant 2012-11-21 16:49:09

1

如果我们只说大约记录(即写更多或更少的大量文本中的哪一个要由人来阅读)您的课,我会使用选项2

如果你所关心的在选项2中Xcode覆盖你的类的可能性,你可以考虑为每个实体创建两个类:一个由Xcode生成并且总是可以替换的类(通常不会触及该文件),另一个从生成的类继承并在其中你把你所有的自定义和评论。

这两种方法是由mogenerator提出的。

虽然如果您需要存储一些元数据与将以编程方式进行处理的实体,userInfo完全适合于此。