3
我使用的颱風迅速的項目,據我瞭解我要所有注射明確地映射在TyphoonAssembly這樣的:自動注射颱風+迅速
public dynamic func appDelegate() -> AnyObject {
return TyphoonDefinition.withClass(AppDelegate.self) {
(definition) in
definition.injectProperty("cityDao", with:self.coreComponents.cityDao())
definition.injectProperty("rootViewController", with:self.rootViewController())
}
}
這似乎很難管理,並且非常脆弱(重構時)。
我看到有自動注射(通過類型匹配)支持位置: https://github.com/appsquickly/Typhoon/wiki/Auto-injection-(Objective-C) 但這是objetive℃。
有沒有人知道一種方式,我可以連接注射而不顯式註冊與他們的名字作爲字符串的道具?
謝謝!
@talarari非常歡迎。對不起,壞消息的傳播者,但希望通過颱風,語言演化或另一個「功能性」數字資源庫,隨着時間的推移,斯威夫特迪的方法會有所改進。對於後者來說,FiercyCrucible看起來像是一個夢幻般的開始。 – 2015-04-06 10:44:44
感謝您的深入回覆! 我會看看FieryCrucible,看看它是否更適合我的需求。 關於屬性名稱,我不能使用反射方法獲取一個類的所有屬性,並註冊他們與颱風? 正如這裏提到的: [鏈接] http://freecake.yayuhh.com/simple-reflection-in-swift/ 我仍然需要註冊類,但這可以節省魔術字符串的一部分。 我對ios開發相當陌生,所以我可能會在這裏。 – talarari 2015-04-06 10:47:39
@talarari我們*可*提供'按照慣例'的財產注入方式。反射方法實際上沒有幫助,因爲它所能做的只是枚舉屬性,這對於工具支持很有用。但要實際執行注入,需要運行時方法調用。幸運的是,ObjC運行時可以列出Swift類的屬性,如果它們擴展了'NSObject',以及動態調用方法。 。 。所以這歸結爲「按照慣例」的方式。你想開一個問題嗎? – 2015-04-06 10:49:33