我有一个NSNumber
,我希望它是可选的,没有默认值,没有一些代表'缺失'的幻数(例如.0或-1)。即。在数据库上我希望它的值是一个数字或null。它从null开始没问题,但是一旦得到一个数字,我怎么能把它重新设置为'missing'?
我试过了:
myAttribute = nil;
myAttribute = [NSNull null];
[self setValue:[NSNull null] forKey:@"myAttribute"];
[self setPrimitiveValue:[NSNull null] forKey:@"myAttribute"];
第一个没有崩溃,但我知道将核心数据属性设置为nil实际上是说它尚未被提取。因此它不会更新。其他三人崩溃了。
很多建议都表明NSNumber
应该总是包含一个数字,所以我并不认为这是答案。为了解决这个问题,请假装我将数据存储在NSString
中。如何获取核心数据以在数据库上存储NULL
而不是空字符串?
答案 0 :(得分:0)
您可以将可选属性的值设置为nil
,应该没有问题:
self.myAttribute = nil;
[self setValue:nil forKey:@"myAttribute"];
两个都工作。您的通话2,3,4失败,因为NSNull
不是号码。