ㄷㅣㅆㅣ's Amusement

NSSet, NSMutableSet 중복제거 본문

Programming/iOS

NSSet, NSMutableSet 중복제거

ㄷㅣㅆㅣ 2015. 11. 7. 20:59

NSSet, NSMutableSet 중복제거

NSSet이나 NSMutableSet을 이용하면... 당연히 중복이 없어져야한다...
집합이니까...

그런데!!
신경써서 override하지 않으면 중복이 생길수가 있음... 아오... 이거 맨날 빼먹고 하다가 디버깅 한시간씩 잡아먹고 그러지..



isEqual함수만 오버라이드하면 되는줄 알았게찌?
근데 디버깅하면 일일이 다 비교하지 않아서 이게 뭥미;; 하고 한시간씩 정신과 시간의 방에 갇히게 됨.
-
(BOOL)isEqual:(id)other {

   // TODO : 중복체크 로직
}

아직도 무슨말인지 잘 모르겠는 사람 있을게야...

당신이 빠뜨린 한가지...


function hash override
-
(NSUInteger)hash {
  
return [[self cardName] hash];
}


이거 안해주면 NSSet에 중복 엄청 생김.

이건 비단  Objective-c 뿐만이 아니라 Java에서도 마찬가지임.

제발 좀 외우자 ㅜㅜ 자꾸 야근하잔니 ㅜㅜ


isEqual 는 hash자!!!



0 Comments
댓글쓰기 폼