考虑以下代码
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 = NO
和equal = YES
这是预期的行为吗?我原本以为读取一个属性总是返回相同的对象,并且每次调用getter时都不会创建一个新对象。
或者这是iOS中的错误吗?
答案 0 :(得分:0)
如果您正在比较对象,那么总是使用equalObjects:而不是仅使用==比较运算符。顺便说一句,在这种情况下,你应该使用compare:方法来比较日期,如果它们是相同的。在您的上下文中,您应该像这样使用它,
[a compare:b] == NSOrderedSame // both the date are same, whatever the object br