簡體   English   中英

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字段,但需要打印idrow.baseValue = obj.id )。

我在這里做錯什么了嗎?

我查看了您的代碼,發現這似乎是,如果我們使用SelectableSection我們的baseValue需要使用selectableValue而不是baseValue ,但是我認為這是Eureka的錯誤,因為盡管我們設置了不同,但selectableValuebaseValue相同價值觀

您可以使用row.selectableValue = obj.id代替row.selectableValue = obj.name減輕這種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問題的原因

希望這對您有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM