gpt4 book ai didi

json - alamofireobjectmapper requestObject 无法做出正确的请求和映射

转载 作者:可可西里 更新时间:2023-10-31 23:14:38 24 4
gpt4 key购买 nike

您好,我遇到了解析问题。

当我尝试解析 this 时我的 tableviewcell 中的 JSON并且得不到我需要的值。

我的要求:

    let videos = NewestVideos()
let URL = "https://api.vid.me/channel/1/new"


override func viewDidLoad() {
super.viewDidLoad()

Alamofire.request(.GET, self.URL).responseObject { (response: Response<NewestVideos, NSError>) in

switch response.result {
case .Success(self.videos):
print("")
case .Failure(let error):
print("Request failed with error: \(error)")

}
}
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath) as! NewTableViewCell

cell.newVideoNameLabel.text = resultr


return cell
}

如何获取tableviewcell中的值,并做出正确的请求?

我通过 ObjectMapper 的映射:

    class Videos: Mappable {
var embedUrl: String?
var title: String?

required init?(_ map: Map){

}
func mapping(map: Map) {
embedUrl <- map["embed_url"]
title <- map["title"]

}
}

class NewestVideos: Mappable {
var videos: [Videos]? = []


required init?(_ map: Map){

}
func mapping(map: Map) {
videos <- map["videos"]
}
}

最佳答案

您的可映射类看起来不错,除了视频应该是视频。

class Video: Mappable {

var embedUrl: String?
var title: String?

required init?(_ map: Map) {}

func mapping(map: Map) {
embedUrl <- map["embed_url"]
title <- map["title"]
}
}

class NewestVideos: Mappable {

var videos: [Video]? = []

required init?(_ map: Map) {}

func mapping(map: Map) {
videos <- map["videos"]
}
}

接下来,在您的 Controller 中,您使用 switch 语句做了一些奇怪的事情。您应该让响应结果为 .Some,然后将 self.videos 设置为 newest.videos

class ViewController: UIViewController, ... {

...

var videos = [Video]() {
didSet {
tableView.reloadData()
}
}

...

override func viewDidLoad() {

super.viewDidLoad()

let request = Alamofire.request(.GET, "https://api.vid.me/channel/1/new")

request.responseObject { (response: Response<NewestVideos, NSError>) in

switch response.result {
case .Success(let newest):
self.videos = newest.videos
case .Failure(let error):
print("Request failed with error: \(error)")
}
}
}

...

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath) as! NewTableViewCell
let video = self.videos[indexPath.row]

cell.newVideoNameLabel.text = video.name

return cell
}

...
}

关于json - alamofireobjectmapper requestObject 无法做出正确的请求和映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39435978/

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