swift3 - 当我在 Tableview 中加载我的 json 时,我发现无法转换类型值的错误
问题描述
这是我的代码,无法将数组类型附加到 UIImage,api 已成功加载,我在附加数据时遇到问题
var 图像 = UIImage
func downloadJsonWithURL() {
let url = NSURL(string: urlString)
URLSession.shared.dataTask(with: (url as URL?)!, completionHandler: {(data, response, error) -> Void in
if let jsonObj = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? NSObject {
print(jsonObj!.value(forKey: "guid"))
if let actorArray = jsonObj!.value(forKey: "guid") as? [NSObject] {
if let actorDict = actorArray as? NSObject
{
if let name = actorDict.value(forKey: "rendered") {
**self.images.append(name as! UIImage)**
print("\(name)")
}
}
}
OperationQueue.main.addOperation({
self.tableView.reloadData()
})
}
}).resume()
}
这是我的休息 api
guid {1} 呈现: http ://thenewschef.com/wp-content/uploads/2018/02/startup.jpeg
解决方案
使用高阶函数增强了上述解决方案的实现,以避免所有演员跳舞。
使用以下代码获取响应表单服务器并在单个数组中过滤所需的 imageUrl。
func downloadJsonWithURL() {
let urlString = "https://thenewschef.com/wp-json/wp/v2/media"
let url = NSURL(string: urlString)
URLSession.shared.dataTask(with: (url as URL?)!, completionHandler: {[weak self] (data, response, error) -> Void in
if let jsonObj = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) {
let guids = (jsonObj as? [[String: Any]])?.map { $0["guid"] }
let imagesArray = (guids as? [[String: Any]])?.map {$0["rendered"]} as? [String]
OperationQueue.main.addOperation({
//Reload Table here...
})
}
}).resume()
}
推荐阅读
- eclipse - 为 JSF 下载 Mojarra 库时,在 Eclipse 中显示错误“zip 文件为空”
- rust - 如何在泛型类型上调用关联函数?
- java - Spring Batch给出所有要写入的字节都没有成功写入错误
- .net - IdentityServer 中的多个 jwks
- r - 在 R 中创建循环以使用比较运算符(>、<、== 等)查找向量的最小值
- javascript - 谷歌地图街景是灰色的(抛出错误 b.hasAttribute is not a function)
- excel - 从 SKU 中查找大小
- google-sheets - 平均 #DIV/0!解决方案?
- python - 如果其中一个键与条件匹配,如何删除嵌套的 JSON 对象?
- python - 关于通过 conda install 安装/更新包的问题