所以我在调用闭包函数时遇到了问题。
private var formatedArticles = [article]()
override func viewDidLoad() {
super.viewDidLoad()
let unformatedData = JsonDataFetcher()
unformatedData.getFromJSON() { articles in
self.formatedArticles = unformatedData.addArticles(array: articles)
print(self.formatedArticles[0])
}
print(self.formatedArticles[0])
}
所以基本上当这个运行时,应用程序崩溃了最后一个print语句,因为我的闭包中的代码还没有被执行。当删除该打印时,闭包内的打印执行...如何在需要时运行闭包?因为现在的问题是我想将我的格式化文章数组用于其他事情,但我一直让索引超出界限
答案 0 :(得分:0)
这不是异步代码的工作方式。下一步必须在内部闭包。所以,像这样:
unformatedData.getFromJSON() { articles in
self.formatedArticles = unformatedData.addArticles(array: articles)
print(self.formatedArticles[0])
// use self.formatedArticles _here_
}
// do _nothing_ here