每次获取时新创建的NSManagedObject属性的值?

时间:2012-11-23 10:04:25

标签: ios core-data nsmanagedobject

考虑以下代码

NSManagedObject *o = ... ;

o.myProperty = [NSDate date];

NSDate *a = o.myProperty;
NSDate *b = o.myProperty;

BOOL identical = (a==b);
BOOL equal = [a isEqual:b];

使用iOS 5在我的iPhone上运行此设置identical = NOequal = YES

这是预期的行为吗?我原本以为读取一个属性总是返回相同的对象,并且每次调用getter时都不会创建一个新对象。

或者这是iOS中的错误吗?

1 个答案:

答案 0 :(得分:0)

如果您正在比较对象,那么总是使用equalObjects:而不是仅使用==比较运算符。顺便说一句,在这种情况下,你应该使用compare:方法来比较日期,如果它们是相同的。在您的上下文中,您应该像这样使用它,

[a compare:b] == NSOrderedSame // both the date are same, whatever the object br