Swift泛型:非标称类型不支持显式初始化
所以我试图理解通用协议和类:Swift泛型:非标称类型不支持显式初始化,swift,generics,xcode9beta6,Swift,Generics,Xcode9beta6,所以我试图理解通用协议和类: protocol ListPresenterType where View.PDO.SW == Dispatcher.SW { associatedtype Dispatcher: ListDispatcherType associatedtype View: ListViewType init(dispatcher: Dispatcher, state: @escaping (_ state: AppState)->(ListSta
protocol ListPresenterType where View.PDO.SW == Dispatcher.SW {
associatedtype Dispatcher: ListDispatcherType
associatedtype View: ListViewType
init(dispatcher: Dispatcher, state: @escaping (_ state: AppState)->(ListState<Dispatcher.SW>))
func attachView(_ view: View)
...
}
在AbstractListViewController
中:
presenter = Presenter(dispatcher: dispatcher, view: self, state: state)
还有这个臭名昭著的错误:
Non-nominal type 'Presenter' does not support explicit initialization
以下是相关游乐场的注册人员:
附件视图(:)
)我想了解:
谢谢。因此,在Xcode9(beta 6)中,像
非标称类型“%type”这样的错误不支持显式初始化
仅仅等于缺陷较少的Xcode中的不匹配类型
错误(如果是这样的话):无法使用类型为“…”的参数列表调用类型“%type”的初始值设定项,应使用类型为“…”的参数列表。
您是否可以显示足够的实际详细信息以允许其他人复制?好主意,但由于所有对象都是泛型的,并且取决于其他对象的类型,因此可能需要大量代码,或者仍然没有足够的细节。我将尝试创建一个游乐场。UPD:我已经添加了GIST,具有最小的可复制代码。Swift版本重要吗?在您的“Init failing with the referenced error”中,我得到的是无法使用类型为的参数列表调用类型为“Presenter”的初始值设定项。。。需要类型为“(dispatcher:Self.dispatcher,view:Self.view)”的参数列表,
且无法使用类型为的参数列表调用“attachView”。。。需要类型为“(Presenter.View)”的参数列表
我使用swift 3,但使用xcode 9 beta 6编译。这整件事在xcode 8中根本不起作用,对操场一无所知。我会查的谢谢你这浪费了我一天的一个小时
presenter = Presenter(dispatcher: dispatcher, view: self, state: state)
Non-nominal type 'Presenter' does not support explicit initialization