swift - 打印语句未打印
问题描述
为什么在我下面的代码中,在 AlamofireImage 下载图像后 viewWillAppear 块中的打印语句会跳过 viewWillAppear 块中的其余代码......
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
Alamofire.request("https://example.com/four.png").responseImage { response in
debugPrint(response)
print(response.request as Any)
print(response.response as Any)
debugPrint(response.result)
if let image = response.result.value {
print("image downloaded: \(image)")
self.imageServer.append(image)
print("ImageServer append Successful")
print("The new number of images = \(self.imageServer.count)")
}
}
///////////THESE STATEMENTS ARE BEING SKIPPED/////////////////
print("The new number of images = \(imageServer.count)")
print("Test")
trackedImages = loadedImagesFromDirectoryContents(imageServer)
configuration.trackingImages = trackedImages
configuration.maximumNumberOfTrackedImages = 1
sceneView.session.run(configuration)
}
解决方案
你可以completionHandler
用来解决这个问题。完成后将执行function
。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
fetchImage {
print("The new number of images = \(imageServer.count)")
trackedImages = loadedImagesFromDirectoryContents(imageServer)
configuration.trackingImages = trackedImages
configuration.maximumNumberOfTrackedImages = 1
sceneView.session.run(configuration)
}
}
func fetchImage(completion: @escaping ()->()) {
Alamofire.request("https://example.com/four.png").responseImage { response in
debugPrint(response)
print(response.request as Any)
print(response.response as Any)
debugPrint(response.result)
if let image = response.result.value {
print("image downloaded: \(image)")
self.imageServer.append(image)
print("ImageServer append Successful")
print("The new number of images = \(self.imageServer.count)")
}
completion()
}
}
推荐阅读
- html - Webfont 渲染问题:浏览器似乎对大小和位置感到困惑
- authentication - OWIN 自托管客户端证书认证 403
- python - 在 Flask 中使用 POST 方法发送数组
- python - 如何在 python (in Mu) 中导入已安装的库?
- algorithm - 用 k 1s 获得所有二进制组合的高效算法
- r - 根据值列表有效地检查多个变量的值
- python - 有没有办法使用用户输入来调用函数?
- swift - 未使用正确的值观察到已发布的 var
- excel - 如何使用 VBA 自动调整列宽?
- r - ggplot:geom_text 不在 geom_col 上方打印