Eureka SelectableSection从selectedRows获取值

时间:2016-10-22 22:48:26

标签: ios swift eureka-forms

我在selectedRows()中遇到SelectableSection的问题。

使用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!})

有疑问
  

地图&#39;生成&#39; [T]&#39;,而不是预期的上下文结果类型   &#39; AnyObject&#39;?

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

1 个答案:

答案 0 :(得分: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这只是猜测。但我希望它仍然有所帮助。