Eureka SelectableSection 从 selectedRows 获取值
Eureka SelectableSection get value from selectedRows
我在 SelectableSection
中遇到 selectedRows()
的问题。
使用Xcode8,Swift3,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({[=10=].value!})
}
现在我对这条线有问题invoiceParams["branches"] = branch_section!.selectedRows().map({[=13=].value!})
map' produces '[T]', not the expected contextual result type
'AnyObject?'
这里有什么问题?这适用于 swift 2.3.
的早期版本
据我所知 SelectableSection.swift selectedRows
returns SelectableRow
项数组:
public func selectedRows() -> [SelectableRow] {
return filter({ (row: BaseRow) -> Bool in
row is SelectableRow && row.baseValue != nil
}).map({ [=10=] as! SelectableRow})
}
所以 map
函数也是 returns 一个数组。
您的 invoiceParams
似乎是一本期望 AnyObject?
作为值的字典。
您可以尝试将 invoiceParams
的声明更改为 var invoiceParams: [String: [Any]] = [:]
。
因为我不知道 Eureka
这只是一个猜测。但我希望它仍然有一点帮助。
我在 SelectableSection
中遇到 selectedRows()
的问题。
使用Xcode8,Swift3,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({[=10=].value!})
}
现在我对这条线有问题invoiceParams["branches"] = branch_section!.selectedRows().map({[=13=].value!})
map' produces '[T]', not the expected contextual result type 'AnyObject?'
这里有什么问题?这适用于 swift 2.3.
的早期版本据我所知 SelectableSection.swift selectedRows
returns SelectableRow
项数组:
public func selectedRows() -> [SelectableRow] {
return filter({ (row: BaseRow) -> Bool in
row is SelectableRow && row.baseValue != nil
}).map({ [=10=] as! SelectableRow})
}
所以 map
函数也是 returns 一个数组。
您的 invoiceParams
似乎是一本期望 AnyObject?
作为值的字典。
您可以尝试将 invoiceParams
的声明更改为 var invoiceParams: [String: [Any]] = [:]
。
因为我不知道 Eureka
这只是一个猜测。但我希望它仍然有一点帮助。