比较NSArray值

时间:2015-08-23 13:47:20

标签: ios objective-c nsarray

所以我有2个数组,一个来自我的本地sqlite数据库,另一个是我从服务器上下载的。

当我尝试使用isEqualToArray时:即使它们相似,我也会得到NO。这篇NSHipster文章http://nshipster.com/equality/告诉我,这是因为他们比较了记忆中的身份......?所以我需要一些只比较价值的方法?

所有的帮助将不胜感激,我已经盯着自己看了很长时间。

所以我有2个阵列:

@media

当我打印它们时它们看起来完全一样,当我在它们上运行NSSet时就像Pablo A建议我没有得到匹配并且当我直接在阵列上运行mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { brojStranica.setText(String.valueOf(position + 1) + "/" + String.valueOf(Static.katalozi.getSlikeKataloga().size())); } @Override public void onPageScrollStateChanged(int state) { } }); 时。它们是有序的,它们总是相同的数字,它们是相同的,但代码不会识别它。

1 个答案:

答案 0 :(得分:0)

抱歉,我编辑了我的答案,因为我意识到它可能会失败。在这里你有一个更好的解决方案:

NSSet *set1 = [NSSet setWithArray:arr1];
NSSet *set2 = [NSSet setWithArray:arr2];

if ([set1 isEqualToSet:set2]) {
    // equal
    NSLog(@"They contain same objects");

    if(arr1.count == arr2.count) {
        NSLog(@"They are exactly the same (not checking order)");
    }
}

根据评论编辑。