Core data 什么';当使用CoreData和scalar属性时,将date属性重置为nil是正确的方法

Core data 什么';当使用CoreData和scalar属性时,将date属性重置为nil是正确的方法,core-data,Core Data,如果NSManagedObject子类中有日期属性,如下所示: @interface Task : NSManagedObject @property (nonatomic) NSTimeInterval finishTime; @end “finishTime”的默认值为零。将“finishTime”设置为其他日期后,是否可以将“finishTime”重置为零?由于NSTimeInterval是双精度double的类型定义,通常做法是将其包装为NSNumber只需通过KVC设置nil值:

如果NSManagedObject子类中有日期属性,如下所示:

@interface Task : NSManagedObject

@property (nonatomic) NSTimeInterval finishTime;

@end

“finishTime”的默认值为零。将“finishTime”设置为其他日期后,是否可以将“finishTime”重置为零?

由于
NSTimeInterval
是双精度
double
的类型定义,通常做法是将其包装为
NSNumber

只需通过KVC设置
nil
值:

   [object setValue:nil forKey:@"finishTime"];

这是一个日期属性。如果我不对基本数据类型使用标量属性,finishTime将是一个NSDate类,将其设置为nil将很容易。但是如何将NSTimeInterval属性设置为nil?nil是指向零内存地址的指针,不能分配给标量。模拟值为零。错误将finishTime设置为0将使日期为“2001-01-01 00:00:00+0000”。检查“TimeIntervalenceReferenceDate”部分。无法将标量设置为零。如果你只需要能够使用nil,你需要使用像NSDate、NSNumber、NSString或NSValue这样的对象。是的,核心数据都是隐藏的。