我正在尝试调用函数以获取地图。每当我这样做时,我都会收到以下错误;
[[:]]
fatal error: unexpectedly found nil while unwrapping an Optional value
通过以下代码填充地图;
class TableViewController: UITableViewController {
var activePlace = 0;
var places = [Dictionary<String,String>()];
//an array of maps, each map containing the data we need like long and lat
override func viewDidLoad() {
super.viewDidLoad()
if(places.count == 1){
places.removeAtIndex(0);
}
places.append(["name":"Taj Mahal", "lat":"27.175282", "lon":"78.042209"]);
}
通过此代码调用
override func viewDidLoad() {
super.viewDidLoad()
let tableView = TableViewController();
var places = tableView.getArrayOfDetails();
var index = tableView.getActivePlace();
println(places);
执行viewDidLoad方法的顺序是否为空?
巧合的是,如果我改变varActivePlace = 7;然后从viewDidLoad打印出来然后它显示正确所以我不知道为什么地图会是空的?
由于
答案 0 :(得分:0)
activePlace
是在实例化时初始化的实例属性,而在实例化类之后的某个时间调用viewDidLoad
。
如果两个类都被实例化,那么你能够在初始化时读取设置值并不奇怪:
var ActivePlace = 7;
尝试将其初始化为0,然后在viewDidLoad
中设置新值 - 或者更好,只需在每个viewDidLoad
上设置一个断点,以验证首先调用哪个。
我认为它发生的是第一个类的viewDidLoad
方法在第二个类的viewDidLoad
后执行。