gpt4 book ai didi

objective-c - 比较 Obj-C 中的对象

转载 作者:太空狗 更新时间:2023-10-30 03:24:53 26 4
gpt4 key购买 nike

如何比较 Objective-C 中的对象?

它像==一样简单吗?

我想检查数组中的对象,如果不存在,则将其添加到数组中,否则,将其从数组中删除。

最佳答案

在 Objective-C 中比较对象的工作方式与在 Java 或其他面向对象的语言中非常相似:

  • == 比较对象引用;在 Objective-C 中,它们是否占用相同的内存地址。
  • isEqual:,定义在 NSObject 上的方法, 检查两个对象是否“相同”。您可以覆盖此方法以提供您自己的对象相等性检查。

所以一般来说,做你想做的事,你会做:

if(![myArray containsObject:anObject]) {
[myArray addObject:anObject];
}

这是有效的,因为 Objective-C 数组类型 NSArray , 有一个名为 containsObject: 的方法,它将 isEqual: 消息发送到它包含的每个对象,并将您的对象作为参数。它不使用 == 除非 isEqual: 的实现依赖于 ==

如果您完全使用自己实现的对象,请记住您可以覆盖 isEqual: 以提供您自己的相等性检查。通常这是通过比较对象的字段来完成的。

关于objective-c - 比较 Obj-C 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5054730/

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