ㄷㅣㅆㅣ's Amusement
NSSet, NSMutableSet 중복제거 본문
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도 오버라이딩 해야하지 않는가 고민하자!!!
반응형
'Programming > iOS' 카테고리의 다른 글
[iOS/Objective-c] Touch Id 사용하여 인증하기. (passcode도 동작) (0) | 2015.11.25 |
---|---|
[iOS/Objective-c]NSArray vs NSMutableArray 잘 사용하고 계신가요? (0) | 2015.11.19 |
iOS/Objective-c, code block 내에서 self 다루기 (2) | 2015.11.19 |
iOS calendar program tutorial (0) | 2015.11.10 |
Objective-c Category에도 overriding이 가능?? (0) | 2015.11.07 |
Comments