2015-04-06 17 views
1

與SWIFT我應該能夠初始化服務與它的依賴例如RepositoryA和RepositoryB颱風斯威夫特框架 - 如何注入參數初始化

比方說,服務應該是短暫的和存儲庫是單身

所有我能找到的是這樣的:

https://github.com/appsquickly/Typhoon/wiki/Types-of-Injections#injection-with-run-time-arguments

但我缺少服務的初始化器,並與initWithParamete容器迅速樣本r使用具有多個參數的初始化程序

任何可用的代碼?

回答

0

要使用Typhoon執行初始化器注入,請使用用戶指南中顯示的示例的等效Swift代碼。它看起來像這樣:

public dynamic func citiesListController() -> AnyObject { 

    return TyphoonDefinition.withClass(CitiesListViewController.self) { 
     (definition) in 

     definition.useInitializer("initWithCityDao:theme:") { 
      (initializer) in 

      initializer.injectParameterWith(self.coreComponents.cityDao()) 
      initializer.injectParameterWith(self.themeAssembly.currentTheme()) 
     } 
    } 

} 

Typhoon Swift sample application,從該上述代碼被採取,示出了進一步的實施例。

+1

在CitiesListViewController的初始化劑是這樣的: 的init(cityDao:CityDao,主題:主題){ super.init(nibName: 「CitiesList」,束:NSBundle.mainBundle()) self.cityDao = cityDao self.theme =主題 } 請告訴我招知道如何調用初始化器「initWithCityDaoTheme:主題:「? 有人能澄清這句法是否initWith + TYPE1參數+ 2型總是參數 –

+0

是,遵循?參數的順序 - 您正在使用Swift方法創建一個Objective-C選擇器。 –