Нет ответа от URL при разборе XML - Alamofire Swift 5 - PullRequest
2 голосов
/ 08 октября 2019

Я использую XMLMapper с AlamoFire запросом на получение ответа. URL работает нормально в браузерах, но когда я пытаюсь использовать его в swift, он пропускает функцию. Даже я не могу отладить ответ. Перед анализом, не получая никаких данных или ответа от URL. Есть идеи ??

func xmlParser() {
        let urlXml = "https://images.apple.com/main/rss/hotnews/hotnews.rss"

        Alamofire.request(urlXml, method: .get).responseXMLObject { (response: DataResponse<RSSFeed>) in
            let rssFeed = response.result.value
            print(rssFeed?.channel?.items?.first?.title ?? "nil")
        }
    }

1 Ответ

1 голос
/ 09 октября 2019

Кажется, что-то не так с вашей моделью. Мне удалось отобразить ответ по этой ссылке.

Попробуйте использовать следующую структуру и сравните ее с вашей, чтобы увидеть разницу:

class RSSFeed: XMLMappable {
    var nodeName: String!

    var channel: Channel?

    required init?(map: XMLMap) {}

    func mapping(map: XMLMap) {
        channel <- map["channel"]
    }
}

class Channel: XMLMappable {
    var nodeName: String!

    var title: String?
    var link: URL?
    var description: String?
    var language: String?
    var copyright: String?
    var pubDate: String?
    var lastBuildDate: String?
    var category: String?
    var generator: String?
    var docs: URL?
    var items: [Item]?

    required init?(map: XMLMap) {}

    func mapping(map: XMLMap) {
        title <- map["title"]
        link <- (map["link"], XMLURLTransform())
        description <- map["description"]
        language <- map["language"]
        copyright <- map["copyright"]
        pubDate <- map["pubDate"]
        lastBuildDate <- map["lastBuildDate"]
        category <- map["category"]
        generator <- map["generator"]
        docs <- (map["docs"], XMLURLTransform())
        items <- map["item"]
    }
}

class Item: XMLMappable {
    var nodeName: String!

    var title: String?
    var link: URL?
    var description: String?
    var pubDate: String?

    required init?(map: XMLMap) {}

    func mapping(map: XMLMap) {
        title <- map["title"]
        link <- (map["link"], XMLURLTransform())
        description <- map["description"]
        pubDate <- map["pubDate"]
    }
}

Надеюсь, это поможет.

...