我正在尝试使用Alomofire和swiftyJSON从json加载图像。Json是字典:
{"name": {"image": "https://...",}}
Alamorefire和快速JSON
var imageLoad: String!
Alamofire.request(.GET, url).responseJSON { (response) -> Void in
if let value = response.result.value {
let json = JSON(value)
if let jsonDict = json.dictionary {
let image = jsonDict["name"]!["image"].stringValue
print(image) // https://....
self.imageLoad = image
}
self.tableView.reloadData()
}
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! TVCell
// Configure the cell...
cell.imageTableView.image = UIImage(named: imageLoad) // not working "fatal error: unexpectedly found nil while unwrapping an Optional value"
如果有谁能帮上忙?如果有别的办法,请随时写信。
6条答案
按热度按时间brtdzjyr1#
我分享了一个使用Swift 3和AlamofireImage实现的代码:
此外,您还需要Cocoapods:
正式文件AlamofireImage和an ImageCell.swift example
8iwquhpp2#
如果您使用的是
Alamofire
,请尝试AlamofireImage
。但是直接在uiimageview上使用af_
快捷方式。您将自动获得缓存、占位符图像,如果您使用的是可以回收单元格的表格视图,您还可以取消未完成的请求。https://github.com/Alamofire/AlamofireImage
o3imoua43#
从alamofire swift 3的tableview单元格中的url加载图像:-
//您需要安装pod 'AlamofireImage','~〉3.0' pod
gkn4icbw4#
我建议使用不同的库来加载图像。我们在项目中总是这样做的。
有一个简单而智能的库,它可以处理从缓存到占位符图像的几乎所有事情。
它的名字叫翠鸟https://github.com/onevcat/Kingfisher
您可以通过JSON中的URL直接在ImageView上使用它示例:
这是最基本的异步映像加载方法,
自己看看吧:)
esbemjvw5#
如果您已经在使用
Alamofire
,您可以尝试AlamofireImage
,它是Alamofire
的图像组件库。然后,提取图像的过程如下:
t3irkdon6#
正如Bear with me所说,您可以使用AlamofireImage,
https://github.com/Alamofire/AlamofireImage
我为雨燕3做了这个,希望它能有所帮助:
在实现tableViewDataSource的控制器中
在我的NetworkService中(我使用shared来实现singleton,类似于getInstance),我实现了调用AlamofireImage的requestImage函数:
正如您所看到的,我使用GCD for main queue来管理completionHandler,只是为了确保它是处理视图修改的主队列。