2014-07-26 8 views
6

Ich bin neues Projekt in Xcode6 erstellt und fügte die alten Dateien zu diesem Projekt (alte Dateien in xcode5 erstellt), Aber was passiert ist alles funktioniert gut, aber "didUpdateToLocation" Delegiertenmethode ruft nicht auf, ich habe auch "didUpdateLocations" Delegate-Methode verwendet, aber beide funktionieren nicht.Kode habe ich aus der alten Datei verwendet, aber das Core Location Framework wurde von xcode6 hinzugefügt, ich weiß nicht, was ich vermisse, bitte jemand mich zu führen eine Lösung finden.CLLocationmanager Delegate Methode funktioniert nicht in xcode6

Antwort

11

Wenn Sie dies auf einem iOS 8-Gerät/Simulator testen, funktioniert der alte Standortcode möglicherweise nicht, da iOS 8 Zugriffsberechtigungen für Standortdienste verarbeitet. Wie der aktuellen Beta iOS 8, müssen Sie neue -requestWhenInUseAuthorization Methode verwenden:

- (void)updateCurrentLocation { 

    if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) { 
     [self.locationManager requestWhenInUseAuthorization]; 
    } 

    [self.locationManager startUpdatingLocation]; 
} 

Der Benutzer Aufforderung enthält den Text aus dem NSLocationWhenInUseUsageDescription Schlüssel in Ihrer App Info.plist-Datei, und das Vorhandensein dieses Schlüssels erforderlich ist, wenn Sie anrufen diese Methode.

<key>NSLocationWhenInUseUsageDescription</key> 
<string>We use your location to find places near you.</string> 
+0

+1 Ich habe dies in der Dokumentation nicht aktualisiert. – Nick

Verwandte Themen