CLLocationManager 的 pausesLocationUpdatesAutomatically 属性在 Swift (iOS8 / iOS7) 中始终为 false

Posted

技术标签:

【中文标题】CLLocationManager 的 pausesLocationUpdatesAutomatically 属性在 Swift (iOS8 / iOS7) 中始终为 false【英文标题】:CLLocationManager's pausesLocationUpdatesAutomatically property always false in Swift (iOS8 / iOS7) 【发布时间】:2015-09-14 10:28:14 【问题描述】:

我尝试在 Swift 中将位置管理器的 pausesLocationUpdatesAutomatically 设置为 true,但似乎没有结果。

另外,根据documentation:

该属性的默认值为true。

然而,现实中的默认值似乎是假的,而且似乎没有办法将其设置为真:

let manager = CLLocationManager()
println(manager.pausesLocationUpdatesAutomatically) // prints false

manager.pausesLocationUpdatesAutomatically = true
println(manager.pausesLocationUpdatesAutomatically) // prints false

如何将此属性设置为true?

【问题讨论】:

【参考方案1】:

如果您在模拟器中运行它,它将始终显示“false”。

尝试在设备上运行它,就像我刚刚做的那样,它总是会说“true”。

注意:这适用于 ios7-iOS11,也适用于 Objective-C。

【讨论】:

实际上在我的 iPhone 4 上它总是说“假”,但我希望这只是 iPhone 4 的问题。您在什么设备上运行代码? 我用的是 iPhone 5S...你还有其他设备可以测试吗? 好的,谢谢!我将很快在 4S 中进行测试,并在未来几天尝试寻找其他设备。当然,我会让你知道的。 pausesLocationUpdatesAutomatically 在 iPad Air (iOS 8 / iOS 9) 中始终为 false,在 iPhone 6 (iOS 8) 中默认为 true。

以上是关于CLLocationManager 的 pausesLocationUpdatesAutomatically 属性在 Swift (iOS8 / iOS7) 中始终为 false的主要内容,如果未能解决你的问题,请参考以下文章

为啥'CLLocationManager.locationServicesEnabled()'默认为真?

Xcode 6 GM - CLLocationManager

CLLocationManager:没有调用 didChangeAuthorization 和 didRangeBeacons

CLLocationManager 和 CLGeoCoder

CLLocationManager 从不调用委托方法[重复]

CLLocationManager 最后一个已知位置