【发布时间】:2014-11-20 13:46:55
【问题描述】:
我有两个名为 Array1 和 Array2 的数组。 Array1 是一个填充了具有多个属性的自定义对象的数组。数组 2 是一个用整数填充的数组。
我正在尝试将 Array1 与 Array2 进行比较,以查看 Array1 中对象的 int 属性是否与 Array2 中的 int 匹配。
目前我得到的代码如下:
for (int i = 0; i < Array1.count; i++) {
Acorn *acorn = [Array1 objectAtIndex:x];
}
有什么建议吗?
【问题讨论】:
-
如果您比较异构对象,
containsObject将无济于事。您正在查看对 array1 的每个元素的所有 array2 进行比较。这会很慢,但可能没有其他选择(或者可能无关紧要)。 -
订单重要吗?即 [a.1, a.2] == [1,2] 和 [a.2, a.1] != [1,2]?
-
@MANIAK_dobrii 不,不应该。只要 Array1 包含 Array2 中的所有整数...
-
那么@jaym 的回答很好,如果 intProp 是一个 NSNumber(否则它缺少 @(acorn.intProp))。但是请注意,虽然它会起作用,但它会很慢(如果您只有 10-20 个项目,您可以跳过此注释并使用答案),特别是如果数组中有很多对象,它会在某个地方大约 O(n^2)。
标签: objective-c arrays