我有一个自定义 isEqual 来测试我的类对象之间的相等性:
BOOL result = ([attempt.attemptId isEqualToNumber:self.attemptId] &&
[attempt.pitcher isEqualToString:self.pitcher] &&
[attempt.vsTeam isEqualToString:self.vsTeam] &&
attempt.isHomeTeam == self.isHomeTeam &&
[attempt.hitlessInnings isEqualToNumber:self.hitlessInnings] &&
...ETC
return result;
有时,这些属性中的任何一个都可能为零。当字符串为 nil 时,相等似乎按预期工作。但是isEqualToNumber
对于NSNumber
对象完全失败:
[NSNull isEqualToNumber:]: unrecognized selector sent to instance 0x1896678'
当两个对象都具有该属性的 nil 时,如何测试 nil inisEqual
并返回?YES