它看起来很愚蠢,但我很怀疑如何检查没有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
答案 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]设置匹配