在 java 中有一个 .equals() 方法。因为我不想使用 ==,所以 Objective-C 中的等价物是什么?
例如,如果我想比较两个数组,我会遍历它们并查看它们的对象是否匹配。
for (int i = 0; i < array1.count; i++) {
if (array1[i].equals(array2[i])) {
do something
}
}
在 java 中有一个 .equals() 方法。因为我不想使用 ==,所以 Objective-C 中的等价物是什么?
例如,如果我想比较两个数组,我会遍历它们并查看它们的对象是否匹配。
for (int i = 0; i < array1.count; i++) {
if (array1[i].equals(array2[i])) {
do something
}
}
您的问题的严格答案是“使用-isEqual:
”。
if ([array1[i] isEqual:array2[i]]) { ...
也就是说,如果你想弄清楚两个数组是否相等,那么你做错了。而不是对所有元素进行成对比较,只需询问数组是否相等:
if ([array1 isEqual:array2]) { ...
某些类,例如NSArray*
,还提供了专门的相等方法来限制比较对象的类型。它们主要用于为您的代码添加额外的语义含义。如果你想使用它,它看起来像
if ([array1 isEqualToArray:array2]) { ...
如果您使用这种风格,请记住比较对象必须确实是正确的类。