Wie zum abrufen der aktuellen Lage im appdelegate über swift

Hi entwickle eine app mit swift will ich Holen, den aktuellen Standort der Benutzer, wenn die app startet, so dass ich geschrieben das mein code im app-delegate-ich habe alle Funktionen und Methoden, die ich.e.. Hinzugefügt und importiert frameworks core location und auch aktualisierte plist, aber ich nicht in der Lage zu Holen die aktuelle Lage

code in meine app delegate:

import UIKit

 import CoreLocation


import MapKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate,GIDSignInDelegate,CLLocationManagerDelegate {
var locationManager:CLLocationManager!
var window: UIWindow?
  var centerContainer: MMDrawerController?


  private var currentCoordinate: CLLocationCoordinate2D?

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    //Override point for customization after application launch.
     IQKeyboardManager.sharedManager().enable = true
    self.locationManager = CLLocationManager()
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.delegate = self
    locationManager.requestWhenInUseAuthorization()
    locationManager.startUpdatingLocation()
    determineMyCurrentLocation()

    var configureError: NSError?
    GGLContext.sharedInstance().configureWithError(&configureError)
    if (configureError != nil){
        print("We have an error:\(configureError)")
    }
    GIDSignIn.sharedInstance().clientID = "331294109111-o54tgj4kf824pbb1q6f4tvfq215is0lt.apps.googleusercontent.com"

    GIDSignIn.sharedInstance().delegate = self
    return true
}



func determineMyCurrentLocation() {
    locationManager = CLLocationManager()
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.requestAlwaysAuthorization()

    if CLLocationManager.locationServicesEnabled() {
        locationManager.startUpdatingLocation()

    }
}

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

    self.locationManager.stopUpdatingLocation()

    let latestLocation = locations.last

    let latitude = String(format: "%.4f", latestLocation!.coordinate.latitude)
    let longitude = String(format: "%.4f", latestLocation!.coordinate.longitude)

    print("Latitude: \(latitude)")
    print("Longitude: \(longitude)")
}
func locationManager(manager: CLLocationManager, didFailWithError error: NSError)
{
    print("Error \(error)")
}

func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
    if (error == nil){
      //let googleName = user.profile.name
       let locValue : CLLocationCoordinate2D = currentCoordinate!
        let latitude = locValue.latitude
        let longitude = locValue.longitude
        let userID = UIDevice.currentDevice().identifierForVendor!.UUIDString
        print("users id = \(userID)")
          print("userlatitude = \(latitude)")
        print("userlongitude\(longitude)")
        print(user.userID)
        let profilePicURL = user.profile.imageURLWithDimension(200).absoluteString
        print(profilePicURL)
        let mainstoryboard = UIStoryboard(name: "Main", bundle:nil)
        let centerViewController = mainstoryboard.instantiateViewControllerWithIdentifier("FourthViewController") as! FourthViewController
            centerViewController.userid = socialMessage as String
        let leftViewController = mainstoryboard.instantiateViewControllerWithIdentifier("LeftSideViewController") as! LeftSideViewController
        leftViewController.ProName = user.profile.name
        leftViewController.proImage = profilePicURL as String
        let leftSideNav = UINavigationController(rootViewController: leftViewController)
        let centerNav = UINavigationController(rootViewController: centerViewController)
        self.centerContainer = MMDrawerController(centerViewController: centerNav, leftDrawerViewController: leftSideNav)
        self.centerContainer!.openDrawerGestureModeMask = MMOpenDrawerGestureMode.PanningCenterView;
        self.centerContainer!.closeDrawerGestureModeMask = MMCloseDrawerGestureMode.PanningCenterView;
        self.window!.rootViewController = self.centerContainer
        self.window!.makeKeyAndVisible()
        }
    }
    else{
        print("looks we got signin error:\(error)")
        }
}
func application(application: UIApplication,
                 openURL url: NSURL, options: [String: AnyObject]) -> Bool {
    return GIDSignIn.sharedInstance().handleURL(url,
                                                sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String,
                                                annotation: options[UIApplicationOpenURLOptionsAnnotationKey])
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
    return GIDSignIn.sharedInstance().handleURL(url, sourceApplication: sourceApplication, annotation: annotation)
}
func signIn(signIn: GIDSignIn!, didDisconnectWithUser user:GIDGoogleUser!,
            withError error: NSError!) {
    //Perform any operations when the user disconnects from app here.
    //...
}

func applicationWillResignActive(application: UIApplication) {
    //Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    //Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}

func applicationDidEnterBackground(application: UIApplication) {
    //Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
    //If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

func applicationWillEnterForeground(application: UIApplication) {
    //Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}

func applicationDidBecomeActive(application: UIApplication) {
    //Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}

func applicationWillTerminate(application: UIApplication) {
    //Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    //Saves changes in the application's managed object context before the application terminates.
    self.saveContext()
}

Und auch ich will use current lat und long in der Methode:

 func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
    here i want to use lat and long
 }
  • haben Sie Hinzugefügt, die Erlaubnis in der info-plist?
  • ja ich habe die Erlaubnis in der plist
  • ist es fragt nach Berechtigungen auch nach Installation und Ausführung 1. mal ?
  • Nein, ich habe bereits Hinzugefügt und arbeitete in anderen view-controller, aber ich kann nicht Holen die in-app-delegate
  • Daneben Haltepunkt zu Ihrem didUpdateLocations Methode @ AppDelegate prüfen, ob dieser Delegat ruft oder nicht. Wenn Sie anrufen, dann rufen Sie Ihren SignIn Funktion delegieren.
  • nicht einmal drucken der aktuellen Position ich.e breiten-und Längengrad...ich denke func hat update-Speicherort nicht working..@dheeraj
  • wenn ich Breakpoints und ausführen, es zeigt die fatalen Fehler, und lassen Sie locValue : CLLocationCoordinate2D = currentCoordinate!

InformationsquelleAutor user7333282 | 2017-01-04
Schreibe einen Kommentar