Swift变量选择struct

时间:2017-05-24 12:29:34

标签: ios swift struct swift3 swxmlhash

提出问题的新方法。我觉得很清楚,但很明显 不。 :-D第二次机会。

我使用SWXMLhash从网站获取信息。对于每个网站,我需要一个不同的结构,因为每个网站的数据结构是不同的。

我有一个很好的工作功能(使用1个网站作为来源),我想根据所选网站转换为一般功能。

到目前为止我得到的最佳解决方案(见下面的代码)给我一个编译错误:

 TorrentProviderItem = try xmlTorrent["rss"]["channel"]["item"].value()

编译错误=对成员'下标'的模糊引用

功能代码:

 private func setResultsToEqualData(result: String, Torrentprovider: TorrentProviders) {
    var TorrentProviderItem: [XMLIndexerDeserializable]
    var xmlTorrent: XMLIndexer!
    xmlTorrent = SWXMLHash.parse(result)

    switch Torrentprovider {
    case .ExtraTorrent:
        TorrentProviderItem = [ExtraTorrentItem]()
    default:
        TorrentProviderItem = [Torrentz2Item]()
    }

    do {
        TorrentProviderItem = try xmlTorrent["rss"]["channel"]["item"].value()
    } catch {
        print("FOUT in torrent!!")
        return
    }

    selectBestResult()
}

我不知道如何解决这个问题。还有谁?

ps在我使用的1个网站的原始功能中:

var TorrentProviderItem: [ExtraTorrentItem]

并且没有开关,这样可以正常工作。

1 个答案:

答案 0 :(得分:0)

有些人向我展示了结构中函数的选项。所以我用它来构建一个变通方法。我在每个网站的每个结构中编写了一个函数,每个函数的返回值具有相同的数据类型。

对我而言,这是一种解决方法,而不是解决方案。我仍然需要将每个网站添加到该功能中(见下文)。

viewControllers

我认为创建一般功能的解决方案在Strucs中。为所有网站使用一个结构而不是每个网站的结构。我只是不知道该怎么做。射流。