Swift数组对象消失

时间:2015-07-14 07:32:16

标签: ios swift

我正在尝试初始化for循环中的一些对象,将它们添加到数组中,然后再访问它们。发生的事情是,由于某种原因,对象变得无法访问,并且数组是空的。

以下是我正在实施的代码的简化版本:

class ClassA {
    var a : [CustomType]

    init() {
        self.a = []
    }

    func doLoop(jsonResults: NSDictionary) {
         // Breakpoint 1: self.a is empty (on first run) as it should be.
         for jsonResult in jsonResults {
             var j = CustomType(jsonResult["key1"], jsonResult["key2"])
             self.a.append(j)
             // Breakpoint 2: prints self.a with each j being correctly appended
         }
    }

    func retrieveItem() -> CustomType {
        // Breakpoint 3: self.a is an empty array!
        return self.a[0]
    }
}

首先调用doLoop,然后调用retrieveItem。我已经检查过doLoop在调用'retrieveItem'之前完全运行。

2 个答案:

答案 0 :(得分:0)

根据代码,如果a为空,则jsonResults也为空。

请检查jsonResults

的长度

答案 1 :(得分:0)

您错过了retrieveItem()功能中的返回类型。该函数应声明为retrieveItem() -> CustomType