我正在尝试将JSON中的图像存储在数组中,并使用TableViewController将其显示在TableViewCell中。但是阵列不仅存储图像,还存储图像的质量/大小,即{53,53}。我不知道如何从中获取图像。 我的表视图控制器名称'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}]
答案 0 :(得分:1)
崩溃是因为您的图片数组可能为空或不包含20个对象,在numberOfRowsInSection
您要返回20,要使用imageArray
来解决此问题,您需要返回{{1}的计数像这样。
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) ->Int {
return arrayOfImages.count
}
注意:这只是建议而不是使用NSData
下载图像尝试使用SDWebImage等第三方库,这将为您带来更多好处。