2016-05-31 9 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); 
     }); 
    } 

Wenn ich ein neues Projekt erstellen, kompiliert dieser Code.ABAddressBookRequestAccessWithCompletion nicht alert, erteilt immer nein

Aber in meinem aktuellen Projekt wird kein Alarm gegeben und die Build schlägt mit dem folgenden Fehler kABAuthorizationStatusNotDetermined Zustand und gewährt = nil

Antwort

0

Ich kann nicht sagen, was die Variable „Status“ aus dem Code ist. Sie können es mit folgendem Code versuchen.

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

Simulator 8, wird es Alarm anzeigen, aber Simulator 9, nicht alarmieren; –

+0

auf Simulator 9, nicht alarmieren und immer "nonono, immer hier" loggen; –

+0

Sie müssen CNContactStore verwenden, um Kontakte auf iOS 9 zu erhalten. Dieser Link kann Ihnen helfen https://gist.github.com/willthink/024f1394474e70904728 – riowww