Używam ABAddressBook
w mojej aplikacji.
Dostęp do AB odbywa się z osobnego wątku w celu zwolnienia interfejsu użytkownika.
Jestem świadomy faktu, że dostęp do instancji AB musi być z tego samego wątku przez cały czas i dlatego zbudowałem opakowanie z tego powodu.
Opakowanie jest singletonem i zachowuje swój własny wątek tła.
Wszystkie wiadomości przychodzące do opakowania są automatycznie przekierowywane do wątku w tle, podczas gdy wątek wywołujący czeka aż do końca implementacji, a na końcu wypełnia argument z odpowiednimi danymi (lista kontaktów, konkretny kontakt itp.) .iPhone: książka adresowa jest czasami kasowana
Mimo to książka adresowa na urządzeniu jest czasami pusta (usuwana).
Po każdych 10-20 godzinach korzystania z aplikacji.
Tak, mam kilka pytań:
- Po otrzymuję ABRecordRef z AB w dedykowanym wątku muszę odzyskać dane z ABRecordRef również w tym samym wątku lub może to być inny wątek? Posiadam również wrapper dla ABRecordRef, więc po pobraniu kontaktu z AB wypełniam obiekt wrappera osoby, a następnie używam go (czytanego z ABRecordRef) z oryginalnego wątku.
- Kiedy używam interfejsów API AB UI (kontroler nawigatora osoby, nowy kontroler widoku osoby itp.) I przekazuję je mojej instancji ABAddressBook, muszę się martwić faktem, że API nie użyje tej instancji AB z ten sam wątek, który je utworzył? Widziałem, że mogę przekazać NULL zamiast wystąpienia AB, a następnie API użyje własnego AB, ale co mogę zrobić, gdy chcę zmodyfikować kontakt? W takim przypadku muszę przekazać to instancji ABRecordRef ...
- Czy jest jeszcze coś, o czym nie myślałem?
Z góry dziękuję.
-
Michael