字典似乎没有填充

时间:2014-10-02 11:34:55

标签: ios xcode swift

我正在尝试调用函数以获取地图。每当我这样做时,我都会收到以下错误;

[[:]]
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打印出来然后它显示正确所以我不知道为什么地图会是空的?

由于

1 个答案:

答案 0 :(得分:0)

activePlace是在实例化时初始化的实例属性,而在实例化类之后的某个时间调用viewDidLoad

如果两个类都被实例化,那么你能够在初始化时读取设置值并不奇怪:

var ActivePlace = 7;

尝试将其初始化为0,然后在viewDidLoad中设置新值 - 或者更好,只需在每个viewDidLoad上设置一个断点,以验证首先调用哪个。

我认为它发生的是第一个类的viewDidLoad方法在第二个类的viewDidLoad后执行