请求访问通讯簿时出现MachMessagePort错误

时间:2014-10-06 06:19:08

标签: ios objective-c memory-leaks contacts abaddressbook

我正在尝试从地址簿中加载一些联系人。

我在viewDidLoad中创建地址簿并检查授权

if (!_addressBook) {
      CFErrorRef error=NULL;
      _addressBook=ABAddressBookCreateWithOptions(NULL, &error);
    }

然后我以dealloc

发布它
if (_addressBook) {
        CFRelease(_addressBook);
        _addressBook = NULL;
    }

但我仍然收到以下错误。

Error, could not create MachMessagePort for database doctor (com.apple.ABDatabaseDoctor)

是由于内存分配,权限还是其他问题而导致的问题?

1 个答案:

答案 0 :(得分:0)

我知道这已经晚了六个月,但我记得我最终只是通过重置位置来解决问题。设置中的隐私设置>一般>重置,关闭应用程序设置中的联系人访问权限,然后重新打开。当它启动时,它再次请求授权,之后它起作用。因此,对于面临同样问题的其他人来说,这可能是一个快速解决方案。

如果有人可以告诉我为什么这样有效,那就太好了。