2009-07-29 7 views
15

차이점은 무엇입니까?NSMutableSet과 NSMutableArray

제 맥락에서 동적으로 객체를 추가하고 제거 할 수 있어야합니다. 사용자는 on 및 off를 점검하는 테이블의 행을 클릭하여 목록에서 참조 된 객체를 추가하거나 제거합니다.

집합에는 인덱스가없는 반면 배열에는 항목이 인덱싱됩니다.

+0

비고 해 주셔서 감사합니다. – Brenden

+1

댓글을 남기지 않고 도움이 된 답변을 반드시 upvote하십시오. – amattn

답변

29

NSSet/NSMutableSet은 특정 순서로 항목을 보관하지 않습니다. NSArray/NSMutableArray은 항목을 특정 순서로 저장합니다. 테이블 뷰를 작성하는 경우 배열을 데이터 소스로 사용해야합니다.

+0

또한 순서가 관련이없고 특정 항목이 그룹에 속하는지 아닌지 자주 묻는 경우 NSArray보다는 NSSet을 사용하는 것이 훨씬 효율적입니다. – GoRoS

23

또한 NSMutableSet은 모든 개체가 고유한지 확인합니다.

요소가 인덱스를 가지므로 NSMutableArray는 UITableView와 잘 어울리므로 [배열 수]를 반환하여 테이블 행 수를 얻거나 [array objectAtIndex : rowNumber]를 반환하여 요소를 행과 쉽게 연관시킬 수 있습니다.

+0

이것은 내가 몰랐던 것입니다. – Brenden

3

또한 the documentation에 따르면 개체 구성원 테스트는 NSSets를 사용하면 더 빠릅니다.

당신은 요소의 순서가 객체 이 세트에 포함되어 있는지 여부를 테스트에서 중요하고 성능이 아닌 경우 배열의 대안으로 세트를 사용할 수있는 배열을 정렬 고려-동안이다, 테스트 멤버십은 집합을 사용하는 것보다 느립니다.

0

글쎄 거기에는 3 가지 주요 차이점이 있습니다. 1) 집합 순서가 없습니다. 2) 인덱스가 없습니다. & 3) 배열 순서가 중복 된 값을 가질 수 없습니다. &은 중복 값을 저장할 수 있습니다.