私スウィフトコードをビルドするとき、私はこのエラーを取得して「挿入」を起動することはできません:型の引数リストBaseCellData
Cannot invoke 'insert' with an argument list of type '(BaseCellData, at: Int)' on the row
私は、次のコードを実行すると:私はT以来考え出し
public class CellDataCollection<T: BaseCellData> {
private var data = [T]()
func populate(from data: [T]) {
self.data = data
let firstObjectIsHeader = data.first?.isHeader ?? false
if !firstObjectIsHeader {
let newEmptyHeader = BaseCellData(isEmptyHeader: true)
self.data.insert(newEmptyHeader, at: 0)
}
// ...
}
}
をBaseCellDataです。BaseCellDataの新しいインスタンスをTの配列に追加するのは問題ありません。何が問題なのですか?
これ以外の場合、Tが 'BaseCellData'以外の場合は実行時例外が発生します。したがって、一般的な役に立たないようにする。 –
はい、同意します。ジェネリックの特定の型を使用するとジェネリック全体が失敗します。 – BangOperator
残念ながら、実行時にクラッシュする – Sunkas