gpt4 book ai didi

ios - 复制对象的可变数组比较

转载 作者:行者123 更新时间:2023-11-28 22:18:05 26 4
gpt4 key购买 nike

我正在尝试对 2 个可变数组进行数组比较。在其中一个数组中,我存储我的模型对象,在另一个数组中,我使用 [myObject copy] 存储模型对象的副本。我的模型对象是 NSObject 的子类,所以我也添加了 copyWithZone: 方法。但是,当我在这两个数组上使用 isEqualToArray 进行数组比较时,它总是返回 false。比较对复制的对象不起作用吗?还是我在其他地方出错了?

P.S:总的来说,我想做的是在调用更新服务之前检查我的模型中是否发生了某些变化。我只想在任何模型对象发生更改时调用该服务。

最佳答案

Will the compare not work on copied objects?

只需复制一个对象并再次检查与原始对象的相等性,就可以很容易地找到这个问题的答案。

剧透

您将看到的结果取决于您是否在您的类中实现了自定义 hashisEqual: 方法。如果没有这些,它将默认为父类(super class)实现(NSObject),它认为相等是相同的指针。由于副本是指向同一对象的新指针,NSObject 不会认为它们相等。

我建议您阅读 this NSHipster article (great to start with) 中的对象相等性和/或在 this article by Mike Ash (if you are feeling curious)

关于ios - 复制对象的可变数组比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21109077/

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