iPhone - 核心数据Bool值?

时间:2010-11-18 19:43:31

标签: iphone objective-c core-data boolean

我的核心数据中有一个BOOL。 我希望该值为null,除非我将其设置为YES或NO。 是否有可能做到这一点? 在我的代码中,我如何检查是否尚未设置该值?

在我的nsmanagedObject中,我使用NSNumber作为我的BOOL,在我的核心数据mdoel中我有BOOL。

3 个答案:

答案 0 :(得分:5)

CoreData允许您设置默认值。 Bool可以包含“YES”,“NO”,“None”。 将默认值设置为“None”会使返回值为“null”,这正是我所需要的。

答案 1 :(得分:2)

如果在模型中将布尔值设置为属性类型,则意味着它将使用NSNumber实现。

我不确定为什么你不想返回任何值而不是NO,我实际上建议你不要。如果您只设置一个错误的默认值,那么数据完整性会更容易。

但是,如果您绝对坚持,您只需检查该属性是否为nil,以查看它是否已分配了值。

答案 2 :(得分:0)

正确的答案是肯定的,使用'是''不'和不同的'无'是有实际意义的,这意味着数据是完整的。在核心数据中,有时候有理由检查“无”,特别是如果您想调试数据库。在核心数据中,您可以使用:

[myManagedObject setValue: nil forKey:@"attributeOfMyManagedObject"];

如果在核心数据后面检查SQL数据库,如果使用默认设置,则会看到“NULL”。