Swift UIViewController在协议中的子类变量



我的想法是有一个通用的路由器,我可以使用的通用方法,我在我的应用程序中使用。但我得到这个错误,我想保持weak var viewController作为一个HomeViewController我怎样才能使它工作呢?

类型'HomeRouter'不符合协议'CommonRoutingLogic'

import UIKit
class HomeViewController: UIViewController {
var router: HomeRoutingLogic?

func detailsClicked() {
router?.goToDetails()
}
}
class HomeRouter: CommonRoutingLogic {
weak var viewController: HomeViewController?
init(viewController: HomeViewController?) {
self.viewController = viewController
}
}
protocol HomeRoutingLogic: CommonRoutingLogic {
func displayHomeGreetings()
}
protocol CommonRoutingLogic {
var viewController: UIViewController? { get set }
func goToDetails()
}
extension CommonRoutingLogic {
func goToDetails() {
// goto details
}
}

似乎您没有实现goToDetails()方法。也许可以这样修改:

extension CommonRoutingLogic {
func goToDetails() {
// goto details
}

}

?

extension HomeRouter : CommonRoutingLogic {
func goToDetails() {
// goto details
}

}

最新更新