Parse.com PFGeoPoint.geoPointForCurrentLocationInB

2020-03-14 03:18发布

问题:

I'm using Parse.com iOS SDK, and I need the current location of the user, so I'm using the function PFGeoPoint.geoPointForCurrentLocationInBackground(...).

The problem is: the block in the argument list is never called. Here is my code:

PFGeoPoint.geoPointForCurrentLocationInBackground() {
    (point:PFGeoPoint!, error:NSError!) -> Void in

    NSLog("Test log 1") // Never printed

    if point != nil {
        // Succeeding in getting current location
        NSLog("Got current location successfully") // never printed
        PFUser.currentUser().setValue(point, forKey: "location")
        PFUser.currentUser().saveInBackground()
    } else {
        // Failed to get location
        NSLog("Failed to get current location") // never printed
    }
}

Any idea?

回答1:

I had the same problem. It's fixed in Parse 1.4.0.

Also you need to add the following key/value pair to your app's info.plist:

<key>NSLocationWhenInUseUsageDescription</key>
<string>We want to send your location data to the NSA, please allow access to location services. (replace this text with whatever you want the dialog to say)</string>

References:

  • Parse SDK for iOS 8
  • CLLocationManager in iOS 8 - use of NSLocationWhenInUseUsageDescription


回答2:

UPDATE:


Got back with Facebook on this issue.

Similar question posted here: Parse geopoint swift not getting current location

Will update as they respond back.



回答3:

Check this:

Click at your Project Targets/Build Phases/Link Binary With Libraries/

This file must be listed: CoreLocation.framework 
if there is not click Add and select it from the list.

In your ViewController.swift check this:

import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {

/Supporting Files/info.plist <- Click on this file

Click on + to add: Key: NSLocationAlwaysUsageDescription Type: String Value: Add a description

Click on + to add: Key : NSLocationWhenInUseUsageDescription Type: String Value: Add a description

check IOS Simulator /Debug/Location/Apple here you must select something (none => error)