我是 iOS 开发的新手,但我正在尝试修改 Estimote 提供的示例应用程序(我正在使用他们的 Indoor Positioning SDK)。在示例中,有一个名为 MenuViewController 的 ViewController 类,其中包含一个名为 -loadLocationFromJSON() 的函数。现在,在这个函数中,他们创建了一个名为 locationViewController 的 ViewController 的新实例,该实例被推送到 navigationController。到目前为止,一切正常,位置文件正确构建并显示在屏幕上。
现在我要做的是创建一个位于 MenuViewController 类中的开关,它可以切换 LocationViewController 上的属性。locationViewController 有一个名为rotateOnPositionUpdate 的indoorLocationView 属性,您可以将其设置为true 或false。在我推送 locationViewController 之前,我想根据 MenuViewController 类中的开关设置该属性。这是我到目前为止所拥有的:
@IBAction func loadLocationFromJSON() {
let bundle = NSBundle.mainBundle()
let path = bundle.pathForResource("location", ofType: "json")
let content = NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding, error: nil) as String
let location = ESTLocationBuilder.parseFromJSON(content)
var locationViewController:LocationViewController = LocationViewController(nibName: "LocationViewController", bundle: nil)
locationViewController.location = location
// the following line is where the code fails
locationViewController.indoorLocationView.rotateOnPositionUpdate = false
self.navigationController?.pushViewController(locationViewController, animated: true)
}
正如您无疑注意到的那样,现在我只是试图将属性设置为 false(甚至不用担心开关的状态)......但是当我尝试构建它时失败了。调试器返回一个错误,说“致命错误:在展开可选值时意外发现 nil”。我不完全知道这意味着什么,也不知道为什么我不能设置该 locationViewController 类的属性。有人可以提供一些帮助吗?