相关疑难解决方法(0)

以编程方式请求访问联系人

自从更新到iOS 6后,我注意到我在iPhone地址簿中添加联系人的代码不再有效.我相信这是一个与权限相关的问题,因为Apple在访问联系人之前现在需要用户权限(修复问题).

我希望应用程序能够自动请求访问联系人的权限,如下面的屏幕截图所示,但事实并非如此.尝试添加联系人失败了ABAddressBookErrorDomain error 1.

我是否需要以编程方式启动对联系人请求对话框的访问?怎么做的?

访问联系人

iphone objective-c contacts ios ios6

109
推荐指数
3
解决办法
8万
查看次数

获取iOS上所有联系人的列表

我想获得iPhone的所有联系人列表.

我检查了Address Book参考,我可能错过了一些东西,但我没有看到它提供了获取联系人列表的方法.

abaddressbook ios4 ios

72
推荐指数
8
解决办法
9万
查看次数

ABRecordCopyValue可以返回什么?(解决不良访问)

我正在使用这个简单的代码来获取ios 7中地址簿的所有联系人.我的地址中有155个联系人.当我记录人们的姓名时,我从我的地址簿中获取了34个正确的名字(显然是随机的),15个名称为null,然后在第50个项目上,一个糟糕的访问崩溃就行了

   NSString *firstNames = (__bridge NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty)
Run Code Online (Sandbox Code Playgroud)

我试过登录姓氏,或图像没有变化.我试图避免对null对象进行ABRecordCopyValue而不进行任何更改.我尝试在项目> 50上执行ABRecordCopyValue,并在50到150的项目上得到相同的结果.我做错了什么?什么ABRecordCopyValue可以返回正确的值旁边和null?

+(NSArray *)getAllContactsAddress
{
CFErrorRef *error = nil;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);

// SUPPOSE access has been granted
BOOL accessGranted = true;

if (accessGranted) {
    ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);
    ABRecordRef source = ABAddressBookCopyDefaultSource(addressBook);
    CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(addressBook, source, kABPersonSortByFirstName);
    CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);
    NSMutableArray* items = [NSMutableArray arrayWithCapacity:nPeople];


    for (int i = 0; i < nPeople; i++)
    {
        ContactsData *contacts = [ContactsData new];

        ABRecordRef person = CFArrayGetValueAtIndex(allPeople, i);

        NSString …
Run Code Online (Sandbox Code Playgroud)

addressbook abrecord ios

3
推荐指数
1
解决办法
1874
查看次数