2012-01-04 34 views
13

Tôi thực sự cần trợ giúp ở đây.Đăng ký thay đổi Sổ Địa chỉ, sử dụng ABAddressBookRegisterExternalChangeCallback

Tôi thực hiện chính xác giống như trong tất cả các ví dụ, nhưng không nhận được bất kỳ thông báo nào.

Dưới đây là mã của tôi:

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

Đăng ký thông báo:

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

Định nghĩa về callback:

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

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

Và phương pháp khác:

-(void) addressBookChanged 
{ 
    NSLog(@"%@", @"addressBookChanged"); 
} 
  • Tôi đang chạy ứng dụng
  • Chuyển sang ứng dụng danh bạ
  • Thêm một số liên lạc mới
  • có gì xảy ra ... không có nhật ký, không có gì ...

Tôi đang làm gì sai ở đây?

  • Bất kỳ '#import' nào bị thiếu?
  • Thiết bị có hoạt động trên thiết bị/trình mô phỏng không?
  • Bất kỳ cách nào cụ thể để khai báo cuộc gọi lại? Tĩnh có thể?

Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn.

Trả lời

8

Ok, tôi biết câu trả lời ngay bây giờ ...

Các callback được gọi, nhưng chỉ khi tôi tiếp tục trở lại ứng dụng của tôi.

+0

Bạn có nhận được bất kỳ thông tin nào về địa chỉ liên hệ mới được thêm hoặc chỉnh sửa trong Sổ địa chỉ không? – BaSha

+0

@BaSha - vâng, tôi đã làm. – Gal

+1

Ý tôi là, thông báo nói chung, không chứa bất kỳ thông tin nào về mục nhập AB đã thay đổi. – Gal

Các vấn đề liên quan