所以我试图让Core Location中的CLFloor给我数据,而不是在Swift中返回nil,但我还是没能。我已经尝试了我自己的代码和NSHipster的以下内容:
import CoreLocation
class LocationManagerDelegate: NSObject, CLLocationManagerDelegate {
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: AnyObject[]!) {
let location: CLLocation? = locations[0] as? CLLocation
if let floor: CLFloor? = location?.floor {
println("Current Floor: \(floor?.level)")
}
}
}
let manager = CLLocationManager()
manager.delegate = LocationManagerDelegate()
manager.startUpdatingLocation()
有人知道如何在设备或模拟器上完成这项工作,我相信答案会让很多人受益。如果有人知道这个或CLVisit的任何好资源,那也会有所帮助。
答案 0 :(得分:9)
据我了解WWDC session 708 - Taking Core Location Indoors中的说法,您需要手动注册并在新Apple的Maps Connect页面上设置特定地点才能获得iOS中的楼层信息。
因此,似乎没有办法为任意场地自动提供楼层信息(例如,基于GPS的高度信息)。
答案 1 :(得分:4)
基于Apple网站的这两个链接
讨论 如果楼层信息不适用于当前位置,则此属性的值为nil。
我不是快速的专家,但我认为 return nil可能意味着该位置没有楼层信息。
答案 2 :(得分:0)
我不认为iOS会根据我的理解https://developer.apple.com/videos/wwdc/2014/?id=708神奇地告诉你楼层。你需要以某种方式以另一种方式获得该数字。例如。您可以捕获一些iBeacon信号并从该下载中获取楼层编号,或者在屏幕上滑动以找到您所在的正确楼层地图?