正如許多人一樣,我想實現尤里卡一個自定義行「BaseRow不能轉換爲預期的參數類型」。斯威夫特尤里卡 - 自定義行
所以我跟着教程,甚至看看了尤里卡社區提供的一些例子。
這是我的代碼:
open class EditorTextCell: Cell<Field>, CellType {
@IBOutlet weak var questionLabel: UILabel!
@IBOutlet weak var questionField: UITextField!
// TODO
}
行是:
public final class EditorTextRow: Row<EditorTextCell>, RowType {
required public init(tag: String?) {
super.init(tag: tag)
cellProvider = CellProvider<EditorTextCell>(nibName: "EditorTextCell")
}
}
我的數據結構是簡單的:
public class Field: Object {
dynamic var question = ""
dynamic var mandatory = false
}
據我瞭解,我需要一個數據結構來保存用戶交互後我的自定義行將保留/生成的數據。這個自定義數據結構是我的情況下的一個Realm對象,所以我想 - 爲什麼不重用它?之後,自定義數據結構應該被傳遞到我定義的自定義單元格的Cell<MyDataStructure>
。自定義行只是加載我的筆尖,並聲明使用Row<MyCustomCell>
的那個單元格。就這樣。正確?
我收到錯誤「無法將類型UITableViewCell的值轉換爲預期的參數類型BaseRow」在我試圖實例化我的自定義行像form.last! <<< EditorTextCell()
的行上。
我閱讀官方文檔,它說: Custom rows need to subclass Row<CellType> and conform to RowType protocol. Custom cells need to subclass Cell<ValueType> and conform to CellType protocol.
- 這是我正在做的。我還在stackoverflow上發現了link,這給出了我已經遵循的一些建議。我看了一下this,這是一個正式的例子。我基本上只是寫下他們做了什麼,但它不起作用。
爲什麼?
我看到的唯一區別是他們爲Row<MyCustomCell>
寫了一個單獨的下劃線類型,並做了一些我不明白的東西。我不明白爲什麼這是必要的,如果他們的GitHub上的官方文件說,它足夠的子類,並採取Row<MyCustomCell>
和RowType
。