适用于iOS的推荐IoC框架?

时间:2012-01-08 23:35:19

标签: ios dependency-injection inversion-of-control

有人可以为iOS推荐一个好的IoC框架来促进依赖注入吗?

到目前为止,我发现的唯一一个是Objection Framework,显然与Guice相似(遗憾的是我不熟悉)。这个是iOS的常见选择吗?是否有值得检查的竞争框架?

3 个答案:

答案 0 :(得分:21)

<强>台风

Typhoon-website列出了主要功能。快速摘要:

  • 非侵入性的。不需要宏或XML。使用利用Objective-C运行时的 Objective-C or Swift API 完成配置。

  • <强>轻型即可。只需2500行代码。它占用空间非常小,因此适用于CPU和内存受限的设备。调整性能。

  • 可以轻松拥有相同基类或协议的多种配置。

  • 没有神奇的字符串 - 支持IDE重构,代码完成和编译时检查。

  • 支持注入视图控制器和故事板集成。

  • 支持初始化和属性注入,以及生命周期管理。

  • 强大的内存管理功能。提供预先配置的对象,没有单例的内存开销。

  • 对循环依赖关系的出色支持。

  • 经过严格测试 - 用于各种Appstore特色应用。

  • 一个国际分布的核心团队(我们甚至监控StackOverflow),因此对您的任何问题的支持都是不可避免的:)

API文档和示例应用

答案 1 :(得分:15)

  

......是否存在值得检查的竞争框架?

Objection是我可以在google for iOS上找到的DI库,所以如果你想要一个预建的库,你可能会被它困住。

DI并不特别要求使用框架。如果您的应用程序很小,您只需在应用程序根目录下创建所有实例并手动注入。

如果你需要更多,并且现有框架没有为你削减它,你可以推出自己的服务定位器,然后在它上面构建一个DI容器。

您还可以从另一个平台移植现有的较小框架。 .Net上有几个“小”的,例如 - NinjectSimpleInjector

  

这是iOS的常见选择吗?

这似乎是一个相当小的项目,因为只列出了一位作者/贡献者。提交的问题不多。 iOS市场相当大。所以我认为只有极少数的iOS开发人员使用这个库。

但这不一定是坏事。它似乎是created, used, and supported by a small company。它有fairly steady updates for the past year

我对类似范围的开源项目的轶事经验:我并不总是经常获得新功能,而且我经常是最终发现错误的人。但我倾向于很快得到现有功能集的支持,并且很多人都关注支持我发送的电子邮件。 YMMV。

答案 2 :(得分:11)

好吧,我希望你原谅我一点插件,但我刚刚发布了自己的Objective-C DI框架:注射器

https://github.com/tomekc/Syringe

它的目的是简单和轻量级,我的主要目标是使其尽可能不突兀。我有很强的Java背景,所以我是在Google Guice和Spring之后设计的。

相关问题