我如何遍歷數組的兩個對象對它們進行比較,但在第二次迭代(對於OBJ2)我要排除比較對象(OBJ1)已經是找到 匹配?換句話說,我不希望他們都找到同一個對象。目標C:對於在循環訪問數組,但不包括對象
for (object *obj1 in array)
if (obj1 == "this") //run next iteration
for (object *obj2 in array)
// if (obj2 == @"this");
我如何遍歷數組的兩個對象對它們進行比較,但在第二次迭代(對於OBJ2)我要排除比較對象(OBJ1)已經是找到 匹配?換句話說,我不希望他們都找到同一個對象。目標C:對於在循環訪問數組,但不包括對象
for (object *obj1 in array)
if (obj1 == "this") //run next iteration
for (object *obj2 in array)
// if (obj2 == @"this");
for(object *obj1 in array) {
for (object *obj2 in array) {
if(obj1 == obj2) continue; //this matches if the object is same
//do your code
}
}
值得一提的是==是指針比較,只有對於完全相同的對象纔是真實的。如果你也想用相同的值相匹配對象的不同情況,使用'-isEqual:'來代替。 – indragie
謝謝,這很簡單! –
如果你想保持你的數組中的元素獨特的,看'NSMutableSet'和'NSMutableOrderedSet'(如果也需要一個強勢整理。) –