gpt4 book ai didi

json - 使用 Swift 将 JSON 图像数据存储在数组中并在 tableViewCell 中显示

转载 作者:行者123 更新时间:2023-11-28 06:34:04 25 4
gpt4 key购买 nike

我正在尝试将来自 JSON 的图像存储在一个数组中,并使用 TableViewController 在 TableViewCell 中显示它。但是数组不仅存储图像,还存储图像的质量/大小,即 {53,53}。我不知道如何从中获取图像。我的 TableView Controller 中有一个名为“gameImage”的 UIImage。

import UIKit

class ViewController: UITableViewController {

var NumberOfRows = 5
var arrayOfImages = [UIImage]()
let ImageData=NSData()
override func viewDidLoad() {

super.viewDidLoad()
let url = NSURL(string:"https://itunes.apple.com/us/rss/topgrossingipadapplications/limit=25/json")

let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
let task = session.dataTaskWithRequest(NSURLRequest(URL: url!)) {(data,response,error) -> Void in


let swiftyJSON = JSON(data: data!)

for i in 1...6{
var theEntryArray = swiftyJSON["feed"]["entry"][i-1]["im:image"].arrayValue
let imageArray = theEntryArray[0]["label"].string!
let ImageUrl = NSURL(string: imageArray)

let ImageData = NSData(contentsOfURL: ImageUrl!)

self.arrayOfImages.append(UIImage(data:ImageData!)!)



}

}

task.resume()
// Do any additional setup after loading the view, typically from a nib.




}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) ->Int {
return 20
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! TableViewCell


let pho=arrayOfImages[indexPath.row]
cell.gameImage.image = pho

return cell
}


}

arrayOfImages 的输出如下所示:

 [<UIImage: 0x7ff893f8c990>, {53, 53}, <UIImage: 0x7ff893f62830>, {53, 53}, <UIImage: 0x7ff893c599c0>, {53, 53}, <UIImage: 0x7ff893f95740>, {53, 53}, <UIImage: 0x7ff893c5c900>, {53, 53}, <UIImage: 0x7ff893e3fee0>, {53, 53}]   

enter link description here

最佳答案

崩溃是因为您的图像数组可能为空或不包含 20 个对象,在 numberOfRowsInSection 中您返回 20,要使用 numberOfRowsInSection 解决此问题您需要返回你的 imageArray 像这样计数。

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) ->Int {
return arrayOfImages.count
}

注意: 这只是建议而不是使用 NSData 下载图像尝试使用第三方库,如 SDWebImage 和其他会给你更多好处的库。

关于json - 使用 Swift 将 JSON 图像数据存储在数组中并在 tableViewCell 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39545156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com