2016-05-31 122 views
-3
ABAuthorizationStatus status = ABAddressBookGetAuthorizationStatus(); 
if (status == kABAuthorizationStatusNotDetermined) { 
    NSLog(@"未知"); 
    ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL,NULL); 

     ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) { 
      if (granted) { 
       NSLog(@"ok"); 
      } else { 
       NSLog(@"nonono,always here"); 
      } 


      CFRelease(addressBook); 
     }); 
    } 

如果我创建一个新项目,此代码将编译。ABAddressBookRequestAccessWithCompletion不警告,始终没有授予

但在我的当前项目中没有给出警报和构建失败,出现以下错误 kABAuthorizationStatusNotDetermined状态,并授予=零

回答

0

我不能告诉什么变量“状态”是从您的代码。你可以尝试下面的代码。

if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) { 
     ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(nil, nil); 
     ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) { 
      if (granted) { 
       //You've got contacts permission 
      } else { 
       //User denied to give permission 
      } 
     }); 
    } 
+0

模拟器8,它会显示警报;但模拟器9,不警报;在模拟器9上的 –

+0

,不警报并且总是记录“nonono,总是在这里”; –

+0

您需要使用CNContactStore在iOS 9上获取联系人。此链接可以帮助您https://gist.github.com/willthink/024f1394474e70904728 – riowww