Swift Eureka SelectableSection baseValue 无法正常工作
Swift Eureka SelectableSection baseValue doesn't work correctly
我有 Eureka
库的代码:
let section = SelectableSection<ImageCheckRow<String>, String>("Section:", selectionType: .MultipleSelection)
section.tag = "section"
for obj in arrList {
section <<< ImageCheckRow<String>(obj.name){ row in
row.title = obj.name
row.selectableValue = obj.name
row.baseValue = obj.id
row.value = nil
}
}
这显示了可选列表,但下一个代码无法正常工作:
@IBAction func saveAction(sender: AnyObject) {
let section = self.form.sectionByTag("section") as? SelectableSection<ImageCheckRow<String>, String>
for obj in section!.selectedRows() {
print(obj.baseValue)
}
}
这会打印 name
字段,但需要打印 id
(row.baseValue = obj.id
).
我是不是做错了什么?
我一直在审查你的代码,我发现了这一点,似乎如果我们使用 SelectableSection
我们需要使用 selectableValue
而不是 baseValue
我们的建议,但我认为这是 Eureka
的错误,因为 selectableValue
和 baseValue
是相同的,尽管我们设置了不同的值
您可以使用 row.selectableValue = obj.id
而不是 row.selectableValue = obj.name
来缓解这种情况
已编辑
尝试将 selectableValue
中的 Int
值替换为
<ImageCheckRow<String>, String>
对于 <ImageCheckRow<Int>, Int>
也将 section <<< ImageCheckRow<String>(obj.name)
替换为 section <<< ImageCheckRow<Int>(obj.name)
最后像我一样调整 saveAction
@IBAction func saveAction(sender: AnyObject) {
let section = self.form.sectionByTag("section") as? SelectableSection<ImageCheckRow<Int>, Int>
for obj in section!.selectedRows() {
print(obj.baseValue)
}
}
这对我有用 Int on selectableValue
问题是这样的
public final class ImageCheckRow<T: Equatable>: Row<T, ImageCheckCell<T>>, SelectableRowType, RowType {
public var selectableValue: T?
required public init(tag: String?) {
super.init(tag: tag)
displayValueFor = nil
}
}
selectableValue
是您在声明中传递的任何类型的类型模式,这就是为什么 <ImageCheckRow<Int>, Int>
使用 Int
解决问题的原因
希望对您有所帮助,问候
我有 Eureka
库的代码:
let section = SelectableSection<ImageCheckRow<String>, String>("Section:", selectionType: .MultipleSelection)
section.tag = "section"
for obj in arrList {
section <<< ImageCheckRow<String>(obj.name){ row in
row.title = obj.name
row.selectableValue = obj.name
row.baseValue = obj.id
row.value = nil
}
}
这显示了可选列表,但下一个代码无法正常工作:
@IBAction func saveAction(sender: AnyObject) {
let section = self.form.sectionByTag("section") as? SelectableSection<ImageCheckRow<String>, String>
for obj in section!.selectedRows() {
print(obj.baseValue)
}
}
这会打印 name
字段,但需要打印 id
(row.baseValue = obj.id
).
我是不是做错了什么?
我一直在审查你的代码,我发现了这一点,似乎如果我们使用 SelectableSection
我们需要使用 selectableValue
而不是 baseValue
我们的建议,但我认为这是 Eureka
的错误,因为 selectableValue
和 baseValue
是相同的,尽管我们设置了不同的值
您可以使用 row.selectableValue = obj.id
而不是 row.selectableValue = obj.name
已编辑
尝试将 selectableValue
中的 Int
值替换为
<ImageCheckRow<String>, String>
对于 <ImageCheckRow<Int>, Int>
也将 section <<< ImageCheckRow<String>(obj.name)
替换为 section <<< ImageCheckRow<Int>(obj.name)
最后像我一样调整 saveAction
@IBAction func saveAction(sender: AnyObject) {
let section = self.form.sectionByTag("section") as? SelectableSection<ImageCheckRow<Int>, Int>
for obj in section!.selectedRows() {
print(obj.baseValue)
}
}
这对我有用 Int on selectableValue
问题是这样的
public final class ImageCheckRow<T: Equatable>: Row<T, ImageCheckCell<T>>, SelectableRowType, RowType {
public var selectableValue: T?
required public init(tag: String?) {
super.init(tag: tag)
displayValueFor = nil
}
}
selectableValue
是您在声明中传递的任何类型的类型模式,这就是为什么 <ImageCheckRow<Int>, Int>
使用 Int
希望对您有所帮助,问候