他にも多くの場合、ユーレカでカスタム行を実装したいと考えています。Swift Eureka - カスタム行が "予想される引数型BaseRowに変換できません"
私はチュートリアルに続いて、ユーレカコミュニティが提供するいくつかの例についても調べました。
これは私のコードです:
public final class EditorTextRow: Row<EditorTextCell>, RowType {
required public init(tag: String?) {
super.init(tag: tag)
cellProvider = CellProvider<EditorTextCell>(nibName: "EditorTextCell")
}
}
そして、私のデータ構造は同じくらい簡単です::
open class EditorTextCell: Cell<Field>, CellType {
@IBOutlet weak var questionLabel: UILabel!
@IBOutlet weak var questionField: UITextField!
// TODO
}
行がある限り私は理解して
public class Field: Object {
dynamic var question = ""
dynamic var mandatory = false
}
、Iカスタム行が保持する/保持するデータを保持するデータ構造が必要です。このカスタムデータ構造は私の場合はRealmオブジェクトなので、私は考えました - なぜ再利用しないのですか?その後、私のカスタムセルのCell<MyDataStructure>
にカスタムデータ構造を渡す必要があります。カスタム行は、単にペンをロードして、それを使用するセルをRow<MyCustomCell>
と宣言しています。それで全部です。正しい?
form.last! <<< EditorTextCell()
のようなカスタム行をインスタンス化しようとする行で、「UITableViewCell型の値を予想される型のBaseRowに変換できません」というエラーが表示されます。
私は公式の文書を読んでいます: Custom rows need to subclass Row<CellType> and conform to RowType protocol. Custom cells need to subclass Cell<ValueType> and conform to CellType protocol.
- これは私がやっていることです。私もlinkをstackoverflowで見つけました。これは私がすでに従っているアドバイスです。そして、公式の例であるthisを見ました。私は基本的に、彼らがしたことを書き留めましたが、それでもうまくいきません。
なぜですか?
私が見る唯一の違いは、Row<MyCustomCell>
のアンダースコアタイプを別に書いていることです。そこには理解できないものがあります。彼らのgithubの公式文書がサブクラス化してRow<MyCustomCell>
とRowType
を採用するのに十分だと言うなら、それがなぜ必要なのか分かりません。