Mar*_*inW 1 null cocoa core-data objective-c
在苹果的核心数据编程指南说:
您可以指定一个属性是可选的——也就是说,它不需要有值。但是,通常不鼓励您这样做——尤其是对于数值(通常,使用模型中默认值为 0 的强制属性可以获得更好的结果)。这样做的原因是 SQL 对 NULL 具有特殊的比较行为,这与 Objective-C 的 nil 不同。数据库中的 NULL 与 0 不同,搜索 0 将不会匹配带有 NULL 的列。
但是我需要我的属性在创建时完全没有价值(nil)。我不能有0(Zero) 或任何其他默认值,因为这会导致域数据错误。
那么如果我将我的数字核心数据属性定义为没有默认值的可选属性会出现什么问题?我可以和他们住在一起吗?
假设您的数据库中有一个数字(int例如)可选列。如果将其留空,则数据库中将出现 NULL。现在假设您子类化NSManagedObject并在您的对象中使用原始类型。该列将映射到一个int属性。当对象被加载时,它会在那里放什么?不可能nil,也不可能为零。
这是不鼓励的,不是禁止的。只是不要在您的模型对象中使用原始类型,根据您的说法,如果您需要能够支持 nils,则无论如何都不会在这种情况下使用。
| 归档时间: |
|
| 查看次数: |
1723 次 |
| 最近记录: |