2012-01-04 6 views
13

Naprawdę potrzebuję pomocy.Zarejestruj się, aby dokonać zmian w książce adresowej, używając ABAddressBookRegisterExternalChangeCallback

Robię dokładnie to samo, co we wszystkich przykładach, ale nie otrzymuję żadnego powiadomienia.

Oto mój kod:

#import <AddressBook/ABAddressBook.h> 
#import <AddressBook/AddressBook.h> 

Rejestrowanie dla zgłoszenia:

ABAddressBookRef book = ABAddressBookCreate(); 
ABAddressBookRegisterExternalChangeCallback(book, addressBookChanged, self); 

Definicja zwrotnego:

void addressBookChanged(ABAddressBookRef reference, 
         CFDictionaryRef dictionary, 
         void *context) 
{ 

    ViewController *viewController = (ViewController*)context; 
    [viewController addressBookChanged];  
} 

I inna metoda:

-(void) addressBookChanged 
{ 
    NSLog(@"%@", @"addressBookChanged"); 
} 
  • biegnę aplikację
  • Przejście do aplikacji kontaktów
  • dodanie nowego kontaktu
  • nic się nie dzieje ... no dziennika, nic ...

Co ja tu robię źle?

  • Brak "#importu"?
  • Czy to działa na urządzeniu/symulatorze?
  • Dowolny określony sposób deklarowania oddzwaniania? Statyczny może?

Każda pomoc zostanie doceniona. Dzięki.

Odpowiedz

8

Ok, wiem, że odpowiedź teraz ...

Funkcja zwrotna jest wywoływana, ale tylko wtedy, gdy wznowienie powrotem mój wniosek.

+0

Czy otrzymałeś informacje o nowo dodanym lub edytowanym kontakcie w książce adresowej? – BaSha

+0

@BaSha - tak, zrobiłem. – Gal

+1

Mam na myśli, że zgłoszenie jest ogólne, nie zawiera żadnych informacji o zmienionym wpisie AB. – Gal

Powiązane problemy