[英]How to specify generic type as variable?
我在使用以下泛型的模型類中有一個函數:
func loadNextPage<T: ListDiffable & JSONDecodable>(as: T.Type)
我從我的視圖控制器調用此函數,如下所示:
model.loadNextPage(as: EventJSONModel.self)
但是,由於我的視圖控制器可用於加載不同類型的數據,因此我需要在加載視圖控制器時指定T.Type
。 雖然我正在通過情節提要板加載視圖控制器,但無法將其實例化為通用控制器。
理想情況下,我想創建一個變量,例如:
private var objectType: (ListDiffable & JSONDecodable).Type = EventJSONModel.self
然后像這樣引用它:
model.loadNextPage(as: objectType)
但這不起作用...我該怎么做?
您正在將Protocol.Type傳遞給通用T.Type,這不能直接完成。 雖然有一些黑客。 簽出此線程。
為什么不能將Protocol.Type傳遞給通用T.Type參數?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.