任何人都可以推薦一個好的IoC框架的iOS來促進依賴注入?iOS推薦的IoC框架?
我迄今爲止發現的唯一一個是Objection Framework,它顯然與Guice相似(不幸的是我不熟悉它)。這是iOS的常見選擇嗎?是否有競爭的框架值得一試?
任何人都可以推薦一個好的IoC框架的iOS來促進依賴注入?iOS推薦的IoC框架?
我迄今爲止發現的唯一一個是Objection Framework,它顯然與Guice相似(不幸的是我不熟悉它)。這是iOS的常見選擇嗎?是否有競爭的框架值得一試?
...是否有競爭的框架值得一試?
Objection是我可以在iOS上找到的DI庫,所以如果您想要預建庫,您可能會遇到它。
DI並不特別要求使用框架。如果您的應用程序很小,則可以簡單地在應用程序根目錄下創建所有實例並手工注入。
如果您需要的不僅僅是這些,而且現有的框架不會爲您裁剪,您可以推出自己的服務定位器,然後在其上構建一個DI容器。
您還可以從另一個平臺移植現有的較小框架。 .Net上有幾個「小」的,例如 - Ninject和SimpleInjector。
這是iOS的常用選擇嗎?
看起來這是一個相當小的項目,因爲只有一個作者/貢獻者列出。提交的問題並不多。 iOS市場雖然相當大。所以我認爲只有很少的iOS開發者使用這個庫。
但這不一定是壞事。它似乎是created, used, and supported by a small company。它有fairly steady updates for the past year。
我對類似範圍的開源項目的軼事經驗:我並不總是經常獲得新功能,而且我經常是最終發現錯誤的人。但我傾向於很快獲得對現有功能集的支持,並且很多關注支持我發送的電子郵件。因人而異。
您對異議的看法是準確和公平的。我遠不止這個項目的最大貢獻者 - 這意味着我通常會添加我需要或想要創作的功能。 我的確很快回應了錯誤。然而,我傾向於在特定時間咀嚼相當長的一段時間,因爲我想確保異議的身份不是損失,並且不會變得「臃腫」。 異議已在相對流行的應用程序中使用。根據與其相關的崩潰日誌以及我執行的性能測試,它不是崩潰或性能瓶頸的原因。 – justice 2012-02-04 01:17:06
最後一件事。異議經過了很好的測試:https://github.com/atomicobject/objection/tree/master/Specs – justice 2012-02-04 01:27:08
@justice:你有沒有使用過的應用程序列表?這可能有助於圖書館的廣告,讓人們知道這些(當然在網站上 - 在這裏列出它們不會是猶太教)。可能需要獲得許可。但是推薦書會幫助回答諸如「這個圖書館有多受歡迎?」等問題。並有助於吸引新用戶。 – 2012-02-04 21:34:54
嗯,我希望你能原諒我有點塞在這裏,但我剛剛發佈了自己的DI框架的Objective-C:注射器
https://github.com/tomekc/Syringe
它是簡單,重量輕的目的,我的首要目標是使其儘可能不顯眼。我有很強的Java背景,所以我在Google Guice和Spring之後設計了它。
+1爲推薦,甚至作爲插件。如果你想要一個很好的方式向人們介紹DI(因爲它在Objective-C世界中是一個相當未開發的概念),請查看[NInject的「入門」wiki頁面](https:// github .COM/ninject/ninject /維基/工具入門)。NInject專注於構造函數注入而不是基於屬性的注入,但他們的教程構建DI概念的方式運行良好。 – 2012-01-27 21:53:11
愛!正如我對異議的感覺一樣,我更喜歡你如何實現自動化。異議仍然提供了更多的靈活性。什麼屬性?你打算注射器增長嗎? – Texas 2012-11-25 02:19:13
我目前在我的小型私人項目中使用它,我很樂意聽到用戶的一些反饋。 – 2012-11-28 09:05:22
颱風
的Typhoon-website列出的主要特點。簡要總結:
非侵入性。不需要宏或XML。使用利用Objective-C運行時的Objective-C or Swift API完成配置。
輕量級。只需2500行代碼。它佔用空間非常小,適用於CPU和內存受限的設備。性能調整。
,這便於具有相同的基類或協議的多個配置。
沒有神奇的字符串 - 支持IDE重構,代碼完成和編譯時檢查。
支持注入視圖控制器和故事板集成。
同時支持初始化和財產注入,加生命週期管理。
強大的內存管理功能。提供預先配置的對象,而不會造成單例的內存開銷。
對循環依賴的出色支持。
戰鬥考驗 - 在各種功能的Appstore應用程序的使用。
一個國際分佈式核心團隊(我們甚至監控的StackOverflow),所以您的任何問題支持是從不遠處:)
API文檔和示例應用程序
真正理解DI是什麼的唯一選擇。謝謝賈斯帕! – 2013-04-07 20:03:37
@Jasper Blues我看着這個和其他DI框架。即使在閱讀文檔之後,我仍然不太明白使用這種方式的好處,還是手工操作。使用這個或任何框架似乎如此重量級,它不是沒有成本。你能建議嗎? – Boon 2014-06-02 18:47:34
@Boon聽起來像是一個很好的StackExchange問題。 – 2014-06-02 23:17:31
做出了答案。我想我的答案是及時的信息,所以隨時可以在更多框架可用時隨時更改接受。 – 2012-01-13 22:01:51