0

私は次のコードを持っています:

NSMutableArray *contacts = [[NSMutableArray alloc]init];
CFErrorRef *error = nil;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);
if (error)
}
NSArray *arrayOfPeople = (__bridge_transfer NSArray*)ABAddressBookCopyArrayOfAllPeople(addressBook);

それはシミュレーターで動作し、期待される結果をもたらします-しかし、デバイスでは連絡先の数は0であり、エラーはありません(アプリは奇妙なことにアドレスブックにアクセスするためのアクセス許可を要求しません-私はアプリを削除して再インストールしました) 何か案は ?

前もって感謝します

4

1 に答える 1

2

iOS 6 では、アドレス帳にアクセスする必要があります。電話ABAddressBookRequestAccessWithCompletion()して許可を得る。これAddressHelperを参照してください

CFErrorRef error = nil;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
    if (error) {
        NSLog(@"error %@", error);
    }else if (granted){
        // Do what you want with the Address Book

    }else{
        NSLog(@"permission denied");
    }

    CFRelease(addressBook);
});
于 2013-07-01T09:10:39.210 に答える