【发布时间】:2017-08-11 22:30:48
【问题描述】:
它显示大约 3 秒并关闭
但是当我在普通班级创建时,它会一直显示,然后用户点击回答允许/不允许
public class Location: NSObject, CLLocationManagerDelegate{
public var locationManager = CLLocationManager()
public func RequestLocation(){
self.locationManager.delegate = self
if CLLocationManager.authorizationStatus() == .notDetermined {
self.locationManager.requestWhenInUseAuthorization()
}
locationManager.startUpdatingLocation()
locationManager.distanceFilter = kCLDistanceFilterNone
locationManager.desiredAccuracy = kCLLocationAccuracyBest
}
}
编辑 - 添加了 OP 的代码以显示 Location 实例化
import UIKit
import DemoLocation
class ViewController: UIViewController {
deinit {
print("deinit")
}
let location = Location()
override func viewDidLoad() {
super.viewDidLoad()
location.RequestLocation()
}
}
【问题讨论】:
-
你从哪个线程调用这个方法?
-
您需要确保您的
Location实例被保留 -
你能展示用于创建
Location的代码吗? -
import UIKit import DemoLocation class ViewController: UIViewController { deinit { print("deinit") } let location = Location() override func viewDidLoad() { super.viewDidLoad() location.RequestLocation() } }
-
当类位置的警报权限弹出实例为deinit时
标签: ios swift permissions location core-location