【发布时间】:2018-07-13 13:33:29
【问题描述】:
我有这样的功能:
func register<T: Routable>(_ action: Action, withCallback callback: @escaping (T?) -> Void) {
notificationCenter.addObserver(forName: actionMap[action], object: nil, queue: .main, using: { notification in
let routable = T(userInfo: notification.userInfo)
callback(routable)
})
}
Routable 的定义如下:
protocol Routable {
init?(userInfo: [AnyHashable: Any]?)
}
当我尝试使用它时,我收到了
无法显式特化泛型函数
这是用法:
controller.register<Navigate>(Action.navigate) { [unowned self] navigate in
// do something
}
有什么办法能让编译器满意吗?
【问题讨论】: