我对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!})
map'produces'[T]',不是预期的上下文结果类型
“有什么东西吗?”
这里有什么问题?这与之前版本的swift 2.3一起工作。
最佳答案
据我所见,从SelectableSection.swiftselectedRows
返回一个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]] = [:]
的声明。因为我不知道这只是猜测。但我希望还是有点帮助。
关于ios - Eureka SelectableSection从selectedRows获取值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40197797/