내 코코아 맥 애플 리케이션에서 인스턴스 을 가지고 있는데이 인스턴스의 순서가없는 세트 B
을 가지고 있으며 차례로 순서가 지정된 인스턴스 세트 C
을 가지고 있습니다. C
의 인스턴스는 하나의 인스턴스 B
및 B
에만 하나만 A
이 될 수 있습니다.Cocoa 모델에서 모든 인스턴스를보다 효과적으로 가져 오는 방법은 무엇입니까?
A
인스턴스에서 순서가없는 모든 인스턴스 C
을 사용하고 싶습니다. 매번 인스턴스 B
을 열거 할 수는 있지만, 자주해야 할 일에 비용이 많이 드는 것처럼 보입니다. 그러나 나는 인스턴스 C
을 A
에 보관하는 것이 번거로워서 불일치의 원인이 될 수 있다고 걱정합니다. 예를 들어 이 A
이 아닌 B
에서 제거되면 걱정할 수 있습니다.
해결 방법 1 - 사용을 A
에서 NSMutableSet
추가하거나 내가 B
에서 동일한 작업을 수행 할 때마다 C
인스턴스를 제거합니다.
해결 방법 2 - 사용을 A
에 NSHashTable
를 참조하는 약한. C
을 B
에서 삭제하는 경우 A
에 대해서도 사라집니다.
해결 방법 3-A
에서 관찰 를 사용하여 키 값 B
에 변경 내용을 추적하고 그에 따라 A
에서 NSMutableSet
를 업데이트합니다.
해결 방법 4 - 단순히 내가 필요할 때마다 세트를 생성하는 모든 인스턴스 B
을 반복.
가장 좋은 방법은? 제가 놓친 다른 접근법이 있습니까?
NB 나는이 응용 프로그램에 CoreData를 사용하지 않으며 사용하지 않을 것입니다.
코드를 프로파일 링 했습니까? 이것이 당신이 많은 시간을 보내는 곳이라는 것을 알고 있습니까? 최적화를 시도하기 전에 프로파일 링을해야합니다. –
나는 그것을 모두 받아 들인다. C의 인스턴스는 모든 데이터 중에서 유일하다. – Vladimir
아니요,이 코드는 아직 프로파일 링하지 않았습니다. 주로 설계 중이기 때문에 아직 프로파일 링이 많이 있습니다. 다른 사람들이 이것을 어떻게 구현했는지 묻는 것은 흔한 문제로 보입니다. 예, 'C'의 모든 인스턴스는 고유합니다. 미안하지만 분명하지 않다.논리적으로 'C'가 하나의'B'에있을 때 따라야합니다. –