1

在 java 中有一个 .equals() 方法。因为我不想使用 ==,所以 Objective-C 中的等价物是什么?

例如,如果我想比较两个数组,我会遍历它们并查看它们的对象是否匹配。

for (int i = 0; i < array1.count; i++) {
    if (array1[i].equals(array2[i])) {
      do something
      }
}
4

1 回答 1

2

您的问题的严格答案是“使用-isEqual:”。

if ([array1[i] isEqual:array2[i]]) { ...

也就是说,如果你想弄清楚两个数组是否相等,那么你做错了。而不是对所有元素进行成对比较,只需询问数组是否相等:

if ([array1 isEqual:array2]) { ...

某些类,例如NSArray*,还提供了专门的相等方法来限制比较对象的类型。它们主要用于为您的代码添加额外的语义含义。如果你想使用它,它看起来像

if ([array1 isEqualToArray:array2]) { ...

如果您使用这种风格,请记住比较对象必须确实是正确的类。

于 2013-03-01T00:07:51.347 回答