** NSObject **的数组包含** NSObject **

时间:2016-09-01 13:50:20

标签: ios arrays

它看起来很愚蠢,但我很怀疑如何检查没有for循环有效检查

我有NSObject类的数组包含3个元素,比如说Array1

<__NSArrayI 0x7fb6952437b0>(
   <ActiveBidModel: 0x7fb6950f0680>,
   <ActiveBidModel: 0x7fb69516d500>,
   <ActiveBidModel: 0x7fb69514f190>
)

另一方面,我有其他数组包含相同的3个元素但具有不同的内存地址和不同的排序顺序说Array2

 <__NSArrayM 0x7fb695208ac0>(
 <ActiveBidModel: 0x7fb6952226e0>,
 <ActiveBidModel: 0x7fb69515f730>,
 <ActiveBidModel: 0x7fb695145cb0>
 )

现在我要检查Array1中的Element是否包含Array2的任何元素或两个数组相等

我尝试使用==运算符,isEqual,isEqualToArray但没有运气 也尝试使用NSSet intersect

修改

如果我比较Array1 [0] == Array2 [2] //假设我知道两个相等元素的索引然后它返回 true

1 个答案:

答案 0 :(得分:0)

class RouteStepForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(forms.ModelForm, self).__init__(*args, **kwargs) self.fields['step'].widget.choices=[ query.name for query in Step.objects.all()]) 实施- (BOOL)isEqual:(id)object,以便在内部值匹配时返回ActiveBidModel

然后,如果所有内容相同且顺序相同,则数组将报告相等。

要处理不同的顺序,请转换为集合。

例如,一个名为&#34; MyObject&#34;有:

YES

测试用例:

- (BOOL)isEqual:(id)object {
    BOOL result = NO;
    if ([object isKindOfClass:[MyObject class]]) {
        result = [self.name isEqualToString:[object name]];
    }
    return result;
}
  

2016-09-01 10:29:27.818 Collection [28481:1193715]没有数组匹配

     

2016-09-01 10:29:32.330 Collection [28481:1193715]设置匹配