首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据从结构初始化传递到另一个视图控制器

将数据从结构初始化传递到另一个视图控制器
EN

Stack Overflow用户
提问于 2017-08-19 17:39:53
回答 1查看 510关注 0票数 1

我在将数据从.Swift文件中的struct init传递到另一个ViewController时遇到了问题。代码如下:

代码语言:javascript
复制
import Foundation

import SwiftSoup

enum HTMLError: Error {
    case badInnerHTML
}

struct GeneralitiesResponse {

    init(_ innerHTML: Any?) throws {
        guard let htmlString = innerHTML as? String else { throw
            HTMLError.badInnerHTML}
        let doc = try SwiftSoup.parse(htmlString)
        let names = try doc.getElementsByClass("name").array()
        let codes = try doc.getElementsByClass("usrname font_size_11 open_sans_condensed_bold").array()
        let schools = try doc.getElementsByClass("scuola").array()



        for i in 0..<names.count {
            let name = try names[i].text()
            let code = try codes[i].text()
            let school = try schools[i].text()

            print(name)
            print(code)
            print(school)
            print("")                                
        }                        
    }                                
}

我需要传递的是for in loop中的name - code - school。我该怎么做呢?我使用带有Swift3和SwiftSoup的Xcode进行解析。

EN

回答 1

Stack Overflow用户

发布于 2017-10-04 05:21:24

注意在names[I]codes[I]schools[I]中使用for I in 0..<names.countI,如果数组计数不同,就会崩溃。

这就是你想要做的。

代码语言:javascript
复制
import Foundation

import SwiftSoup

enum HTMLError: Error {
    case badInnerHTML
}

struct GeneralitiesResponse {
    let names: Array<Element>
    let codes: Array<Element>
    let schools: Array<Element>

    init(_ innerHTML: Any?) throws {
        guard let htmlString = innerHTML as? String else { throw
            HTMLError.badInnerHTML}
        let doc = try SwiftSoup.parse(htmlString)
        names = try doc.getElementsByClass("name").array()
        codes = try doc.getElementsByClass("usrname font_size_11 open_sans_condensed_bold").array()
        schools = try doc.getElementsByClass("scuola").array()
    }
}

这个函数应该在视图控制器中

代码语言:javascript
复制
func parse()throws {
        let gen = try GeneralitiesResponse("html")

        for i in 0..<gen.names.count {
            let name = try gen.names[i].text()
            print(name)
        }

        for i in 0..<gen.codes.count {
            let code = try gen.codes[i].text()
            print(code)
        }

        for i in 0..<gen.schools.count {
            let school = try gen.schools[i].text()
            print(school)
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45770002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档