【问题标题】:alamofire object mapper .. why print my project name?alamofire 对象映射器 .. 为什么要打印我的项目名称?
【发布时间】:2017-09-14 04:57:19
【问题描述】:

Screenshot Here

注意:这是我的第一个 swift 文件

override func viewDidLoad() {
    super.viewDidLoad()

    let encodingURL = url.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

    Alamofire.request(encodingURL!).responseObject { (response: DataResponse<channel>) in

        let MovieResponse = response.result.value

        print("결과: \(MovieResponse?.channel?.result as AnyObject)")
        print("타이틀: \(MovieResponse?.channel?.title as AnyObject)")
        print("토탈카운트: \(MovieResponse?.channel?.totalCount as AnyObject)")
        print("전체:\(MovieResponse?.channel as AnyObject)")
        print("아이템: \(MovieResponse?.channel?.item as AnyObject)")
        print("배우:\(MovieResponse?.channel?.item.first?.actor as AnyObject)")

    }
}

注意:第二个 swift 文件

import Foundation
import ObjectMapper

class channel : Mappable {
    var channel : channelComponents?
    required init?(map: Map){ }

    func mapping(map: Map) {
        self.channel <- map["channel"]    
    }
}

class channelComponents : Mappable {
    var totalCount : Int?
    var result : Int?
    var title : String?
    var item : [item]

    required init?(map: Map){
       item = []       
    }

    func mapping(map: Map) {          
        self.totalCount <- map["totalCount"]
        self.result <- map["result"]
        self.title <- map["q"]
        self.item <- map["item"]  
    }
}

class item : Mappable { 
    var actor : [Actor]

    required init?(map: Map) {       
        actor = []        
    }

    func mapping(map: Map) {        
        self.actor <- map["actor"]     
    }
}

class Actor : Mappable {
    var content : String?
    var link : String?

    required init?(map: Map) { }

    func mapping(map: Map) {
        self.content <- map["content"]
        self.link <- (map["link"])       
    }
}

输入

 print("아이템: \(MovieResponse?.channel?.item as AnyObject)")
 print("배우:\(MovieResponse?.channel?.item.first?.actor as AnyObject)")

输出

아이템: (
    "Movie_D.item"
)
배우:(
"Movie_D.Actor",
"Movie_D.Actor",
"Movie_D.Actor",
"Movie_D.Actor",
"Movie_D.Actor",
"Movie_D.Actor",
"Movie_D.Actor"
)

Movie_D 是我的项目名称。

我想知道演员的名字,但只有我的项目名称。 (算对了)

【问题讨论】:

  • 您可以发布您的回复原始值吗?也 - 尝试从韩文翻译 cmets,因为在一个地方你指的是“演员”,但在代码中它是用韩语编写的。
  • 修正了间距和一些语义,使问题在英语中更容易理解。尝试尽可能地坚持作者的语气/语言,同时浓缩和澄清一些我理解的事情(可能不正确,但我希望不会)。
  • 除了我的编辑之外,就攻击答案而言:如果您添加了数据格式@이재진,这将有助于回答问题——事实上,似乎有一个 Actor 对象您想从中获取actor's name,但根据显示的信息,我不确定它是如何存储在您的应用中的。
  • 哈哈,我对语言感到很抱歉……它让你们变得更复杂了;;无论如何,现在我可以得到我想要的数据,但我仍然对这个问题感到好奇......-_-

标签: swift alamofire mapper objectmapper


【解决方案1】:

您应该将 actor 属性转换为 String(假设它是一个),以便在您的 print 语句中正确显示 actor 的名称。

print("배우:\(String(describing: MovieResponse?.channel?.item.first?.actor))")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    相关资源
    最近更新 更多