我正在尝试初始化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'之前完全运行。
答案 0 :(得分:0)
根据代码,如果a
为空,则jsonResults
也为空。
请检查jsonResults
答案 1 :(得分:0)
您错过了retrieveItem()
功能中的返回类型。该函数应声明为retrieveItem() -> CustomType