所以我有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) {
}
});
时。它们是有序的,它们总是相同的数字,它们是相同的,但代码不会识别它。
答案 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)");
}
}
根据评论编辑。