2009-10-31 2 views
1

나는 tableView에 객체 배열을 가지고 있습니다. 사용자가 다른 페이지로 이동하여 첫 번째 배열을 필터링하는 객체의 체크리스트를 선택할 수 있기를 바랍니다.Objective-C의 다른 배열에있는 객체를 기반으로 배열을 필터링하는 방법은 무엇입니까?

체크리스트의 데이터는 어떻게 처리해야합니까? 현재 선택된 객체의 NSMutableArray로 처리 중입니다. 그런데 어떻게 다른 배열의 내용으로 첫 번째 배열을 필터링합니까?

각 항목을 대신 NSString으로 처리해야합니까?

도움 주셔서 감사합니다.

+0

아차. 제목에서 실수를 바로 잡았습니다. 바라건대 그 모든 혼란을 해결합니다. – Jonah

답변

1

두 번째 배열 대신 NSMutableDictionary를 사용하여 각 개체 (키)가 선택되었는지 여부를 알려주는 값을 연결합니다. 이렇게하면 첫 번째 배열 (필터링해야하는 배열)을 검사 할 때 선택한 설정을 확인하는 것이 더 빠릅니다.

1

개체가 isEquals : \ hash를 구현하는 경우 NSSet을 사용하여 선택한 개체를 저장할 수 있습니다. 그런 다음 설정된 조회를 수행하여 선택되었는지 확인할 수 있습니다. 당신은 NSPredicate를 만들고 그것을 사용하여 배열을 필터링 할 수 있어야합니다.

1

가능한 경우 NSMutableSets를 사용하고 교차점을 사용하십시오.

다른 주어진 세트의 구성원이 아닌 각 오브젝트를 수신자에서 제거합니다.

- (void)intersectSet:(NSSet *)otherSet 

당신과 함께 세트를 만들 수 있습니다

  • (ID) setWithArray : (NSArray를 *)이 anArray
관련 문제