2012-10-16 4 views
1

연락처 앱을 개발하여 Objective - C에 대해 학습 중입니다. 나는 단지 학습을 위해서 Core data 또는 Address book API을 사용하지 않고 있습니다. 따라서 각 연락처는 마스터 NSArray에 저장된 객체입니다. 사용자는 각 그룹이 적절한 연락처 개체를 저장하는 연락처 그룹을 NSArray에 만들 수 있습니다. 내가 직면하고있는 문제는 연락처가 마스터 배열에서 삭제 될 때 나는 수동으로 모든 그룹에서 제거해야한다. NSArray은 그 객체를 보유하고있다. 이 문제를 해결할 더 좋은 방법이 있습니까? 당신이 배우고있는 것처럼여러 NSArrays에 객체 저장

+0

다른 그룹에 같은 개체를 복사하고 있습니까? – vishy

+0

네, 왜 그렇게 나쁜 접근입니까? 일관성 문제를 해결할 수 있습니다. –

답변

0

이, 내가 제안 :

간단한을 : 응용 프로그램에만 연락처 목록에 추가 되세요/편집/하나의 마스터 목록에서 연락처를 삭제. & 검색 목록을 문서 디렉토리의 plist에서 저장할 수도 있습니다.

당신은 배울 것입니다 : plist, tableView, navigation, viewControllers, 유지 배열 내의 데이터 &.

실시간 : 4-5 개의 테이블과 함께 sqlite 데이터베이스를 사용할 수 있습니다. 각 연락처, 그룹, 주소, 웹 사이트 및 많은 다른 데 가지고 싶은 경우. 행 ID의 참조와 상호 연결된 모든 테이블. 위와는 별도로 많은 것들을 배우는 데 확실히 도움이됩니다.

0

개체를 여러 배열에 복사하지 마십시오. 원래 오브젝트와 동일한 포인터를 사용하여 여러 오브젝트에 동일한 오브젝트를 추가하십시오. 배열에 대한 포인터를 유지하고 한 번에 모든 배열에서 동일한 개체를 제거하십시오. isEqual을 구현하려면 == 포인터 평등을 사용합니다.

컬렉션에 저장하기 위해 동일한 개체를 복사하면 혼자만의 두통이 생깁니다. 이터 빌리티 (immutability)는 좋은 특징이지만 시스템 전반의 실제 신원은 특히 포인터 기반 언어에서 더 나은 것이다.

+0

이것은 내가 지금하고있는 일이다. 연락처와 같은 항목을 사용하여 컨택 그룹 개체를 목록에서 모두 제거 할 수 있다고 생각했습니다. 그러나 userinfo는 전달 된 객체를 dict * 복사합니다. –