2016-11-26 2 views
0

Ich versuche, alle Kontakte auf iOS 10 zuzugreifen und diese zu laden; Allerdings stürzt meine App bei jedem Laden des Controllers ab. Ich habe gerade mein Projekt von Swift 2 auf Swift 2.3 umgestellt (es arbeitete an Swift 2). Ich habe auch die Privatsphäre Verwendung für Kontakte in meiner info.plist hinzugefügt, aber das hat das Problem nicht behoben. Hier ist mein Code:Loading Kontakte Crashing iOS 10 Swift

Ich fand dies aus einem Tutorial online Zugang zu beantragen:

func checkAccessStatus(completionHandler: (accessGranted: Bool) -> Void) { 
    let authorizationStatus = CNContactStore.authorizationStatusForEntityType(CNEntityType.Contacts) 

    switch authorizationStatus { 
    case .Authorized: 
     completionHandler(accessGranted: true) 
    case .Denied, .NotDetermined: 
     self.accessStore.requestAccessForEntityType(CNEntityType.Contacts, completionHandler: { (access, accessError) -> Void in 
      if access { 
       completionHandler(accessGranted: access) 
      } else { 
       print("access denied") 
       print(accessError) 
      } 
     }) 
    default: 
     completionHandler(accessGranted: false) 
    } 
} 

Ich erhalte immer diese Fehlermeldung: „Optional (Error Domain = CNErrorDomain-Code = 100 "Zugriff verweigert" Userinfo = {NSLocalizedDescription = Zugriff verweigert, NSLocalizedFailureReason = Dieser Anwendung wurde nicht die Berechtigung zum Zugriff auf Kontakte erteilt.}) "

Der obige Code ist ein Snipper von meinem Controller, auf dem der Fehler auftritt. Ich versuche den Zugriff anzufordern, aber es funktioniert nicht. Gibt es zusätzliche Schritte, um Zugriff auf die Kontakte zu erhalten? Ich erhalte kein Popup-Fenster, in dem um Erlaubnis gefragt wird, wenn ich die Seite lade (obwohl ich das Privatsphären-Bit in der info.plist für die Verwendung von Kontakten hinzugefügt habe). Ich habe auch die Datenschutzeinstellungen & überprüft, um zu sehen, ob ich den Zugriff der App auf Kontakte deaktiviert hatte; Es zeigt jedoch nicht. Ich schätze jede Hilfe, danke!

Update: ich diese Frage gefunden, die ein ähnliches Problem zu sein scheint here (obwohl es iOS 9). Wie lösche ich meine info.plist und erstelle eine neue?

+0

Bei welcher Linie bekommt man den Absturz? Nächstes Mal lassen Sie die Leute nicht nach so einfachen Details fragen! (Warum nicht zu Swift 3 konvertieren?) –

+0

Sorry! Ich hatte es etwas eilig! Ich werde es jetzt aktualisieren, um genauer zu sein, meine Entschuldigung! – JD2017

Antwort

0

Verschieben checkAccessStatus in Ihre Kontakt-Controller und versuchen Sie es erneut diese Methode?

Verwandte Themen