gpt4 book ai didi

ios - 在 isEqual 中测试 NSNumber 是否为 nil

转载 作者:行者123 更新时间:2023-11-29 03:43:35 24 4
gpt4 key购买 nike

我有一个自定义 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] &&

...等等

return result;

有时,这些属性中的任何一个都可能为零。当字符串为零时,相等性似乎按预期工作。但是 NSNumber 对象的 isEqualToNumber 完全失败:

[NSNull isEqualToNumber:]: unrecognized selector sent to instance 0x1896678'

当两个对象的该属性都为 nil 时,如何在 isEqual 中测试 nil 并返回 YES

最佳答案

通常,在编写相等方法时,您应该:

  1. 首先检查要比较的对象的类
  2. 检查本地对象和比较对象属性是否为 nil
  3. 检查本地对象和比较对象属性是否相等

如果您传递的是 NSNull 而不是 nil,那么这就是 JSON 处理和验证中的错误,需要修复。您还需要明确检查 nil 情况,因为 nil == nil 为 true,但 [nil isEqual:nil] 为 false。

关于ios - 在 isEqual 中测试 NSNumber 是否为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18027198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com