相关疑难解决方法(0)

ABAddressBookGetPersonCount在iOS中返回-1

我遇到ABAddressBookGetPersonCount返回-1的情况.测试人员向我保证地址簿中存在联系人.所有手机都运行iOS 6.0.1.

这是代码:

NSMutableDictionary *myAddressBook = [[NSMutableDictionary alloc] init];
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef people  = ABAddressBookCopyArrayOfAllPeople(addressBook);
int numEntries = ABAddressBookGetPersonCount(addressBook);
if (numEntries == 0)
{
    NSString *title = NSLocalizedString(@"error", nil);
    NSString *description =  NSLocalizedString(@"error_empty_contacts", nil);
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
                                                    message:description
                                                   delegate:self
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];
    [alert show];


    return;
}

NSLog(@"emails: found %d", numEntries);
Run Code Online (Sandbox Code Playgroud)

我无法在我的任何手机上重现这一点,但测试人员尝试过3部手机.它适用于iPhone 5,但不适用于4或3;

我找不到任何表明值为-1的文档.我假设它是某种错误,但是什么?

objective-c ios

5
推荐指数
1
解决办法
1305
查看次数

模拟器中的ABAddressBookGetAuthorizationStatus始终返回kABAuthorizationStatusAuthorized

我正在更新iOS 6地址簿授权的应用程序,并在测试中遇到问题.模拟器始终返回授予的授权.这意味着我没有看到请求权限的对话框弹出窗口,因此无法测试该代码路径.好吧,使用设备代替...问题是操作系统似乎记得我的答案所以只要求一次.删除应用程序没有帮助.重新安装时,它保留了之前的权限设置,因此再次没有弹出窗口.

重置模拟器没有帮助,如果您进入模拟器上的隐私设置,则不会将任何应用程序列为请求通讯簿的权限.

我唯一的选择是使用另一个从未安装过我们的应用程序的iOS设备进行每项测试.这不是你应该如何测试这个.任何人的想法?

谢谢

authorization addressbook ios6

4
推荐指数
1
解决办法
3450
查看次数

标签 统计

addressbook ×1

authorization ×1

ios ×1

ios6 ×1

objective-c ×1