2016-11-28 9 views
1

他にも多くの場合、ユーレカでカスタム行を実装したいと考えています。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を採用するのに十分だと言うなら、それがなぜ必要なのか分かりません。

答えて

1

私はあなたの間違いがあなたのコードでEditorTextRowEditorTextCellを交換する必要があることだと思う:

form.last! <<< EditorTextRow() 
関連する問題