ABAddressBook
을 내 앱에서 사용합니다.
AB에 대한 액세스는 UI를 릴리스하기 위해 별도의 스레드에서 수행됩니다.
AB 인스턴스에 대한 액세스가 항상 동일한 스레드에서 이루어져야한다는 사실을 알고 있으며 이러한 이유로 래퍼를 작성했습니다.
래퍼는 싱글 톤이며 고유 한 백그라운드 스레드를 유지합니다.
래퍼로 들어오는 모든 메시지는 백그라운드 스레드로 자동으로 리디렉션됩니다. 호출하는 스레드는 구현이 끝날 때까지 대기하고 결국 out 인수를 관련 데이터 (연락처 목록, 특정 연락처 등)로 채 웁니다. .iPhone : 주소록이 때때로 지워집니다.
비록 장치의 주소록이 때때로 비어 있습니다 (지워집니다).
10-20 회마다 앱을 사용할 때마다
그래서, 나는 몇 가지 질문이 있습니다
- 나는 전용 스레드에서 AB에서 ABRecordRef을 얻을 후 나는 같은 스레드에서 또한 ABRecordRef에서 데이터를 검색해야하거나 다른 스레드 할 수 있습니까? 또한 ABRecordRef에 대한 래퍼가 있으므로 AB에서 연락처를 검색 할 때 사람 래퍼 개체를 채운 후 원래 스레드에서 (ABRecordRef에서 읽음) 사용합니다.
- AB UI API (사람 선택 컨트롤러, 새로운 사람보기 컨트롤러 등)를 사용하고 ABAddressBook의 인스턴스를 전달할 때 API에서이 AB 인스턴스를 사용하지 않는다는 사실에 대해 걱정해야합니까? 그것을 만든 동일한 스레드? 나는 AB 인스턴스 대신에 NULL을 전달할 수 있고 API는 자체 AB를 사용하는 것을 보았습니다.하지만 연락처를 수정할 때 어떻게해야합니까? 이 경우 ABRecordRef 인스턴스를 전달해야합니다 ...
- 내가 생각하지 못한 다른 것이 있습니까?
감사합니다.
-
마이클