ServiceClient { get } var pvLogger: PVLogger { get } var userFeatures: UserFeatures { get } var activityLogger: ActivityLogger { get } // … } CookpadCore ґଘΛQSPUPDPMԽ
ServiceClient { get } var pvLogger: PVLogger { get } var userFeatures: UserFeatures { get } var activityLogger: ActivityLogger { get } // … func resolve<Descriptor: TypedDescriptor>(_ descriptor: Descriptor) -> Descriptor.Outpu t } CookpadCore 3FTPMWFS %FTDSJQUPSΛड͚औͬͯ ࣮Λฦ͢ϝιου %FTDSJQUPS ࣮Λࢦࣔ͢͠ϚʔΧʔ
UIViewController, {{ name }}ViewContract { private var presenter: {{ name }}PresenterContract ! private let environment: Environmen t init(environment: Environment) { self.environment = environmen t super.init(nibName: nil, bundle: nil ) } @available(*, unavailable ) required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented" ) } func inject(presenter: {{ name }}PresenterContract) { self.presenter = presente r } override public func viewDidLoad() { super.viewDidLoad( ) // Insert code here to connect presenter } ม