【问题标题】:Eureka SelectableSection get value from selectedRowsEureka SelectableSection 从 selectedRows 获取值
【发布时间】:2016-10-22 22:48:25
【问题描述】:

我对@9​​87654322@ 中的selectedRows() 有疑问。

使用 Xcode 8、Swift 3、Eureka 2.0.0-beta.1。

func viewDidLoad() {
    let branch_section = SelectableSection<ImageCheckRow<String>>("Branches", selectionType: .multipleSelection)
    branch_section.tag = "branch_section"
    for branch in branchList {
        let branchStr = String(branch.id)
        branch_section <<< ImageCheckRow<String>(branch.name){ row in
            row.title = branch.name
            row.selectableValue = branchStr
            row.value = nil
        }
    }
}


@IBAction func saveFilter(_ sender: AnyObject) {
    let branch_section = self.form.sectionBy(tag: "branch_section") as? SelectableSection<ImageCheckRow<String>>        
    invoiceParams["branches"] = branch_section!.selectedRows().map({$0.value!})
}

现在我对这条线有问题invoiceParams["branches"] = branch_section!.selectedRows().map({$0.value!})

map' 产生 '[T]',而不是预期的上下文结果类型 'AnyObject?'

这里有什么问题?这适用于 swift 2.3 上的早期版本。

【问题讨论】:

    标签: ios swift eureka-forms


    【解决方案1】:

    据我所知,SelectableSection.swift selectedRows 返回一个 SelectableRow 项目数组:

    public func selectedRows() -> [SelectableRow] {
        return filter({ (row: BaseRow) -> Bool in
            row is SelectableRow && row.baseValue != nil
        }).map({ $0 as! SelectableRow})
    }
    

    所以map 函数也返回一个数组。

    您的invoiceParams 似乎是一本期望AnyObject? 作为值的字典。

    您可以尝试将invoiceParams 的声明更改为var invoiceParams: [String: [Any]] = [:]

    因为我不知道Eureka 这只是一个猜测。但我希望它仍然有一点帮助。

    【讨论】:

    • 实际上,声明需要是:var invoiceParams: [String: Any] = [:] 但你的答案是正确的..谢谢..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    • 2017-12-22
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多