Cla*_*fou 24 dependency-injection inversion-of-control ios
任何人都可以为iOS推荐一个好的IoC框架来促进依赖注入吗?
到目前为止,我发现的唯一一个是Objection Framework,它显然与Guice相似(遗憾的是我不熟悉).这是iOS的常见选择吗?是否有值得检查的竞争框架?
Jas*_*ues 21
台风
该台风网站列出的主要特点.快速摘要:
非侵入性.不需要宏或XML.使用Objective-C或Swift API完成配置,该API利用Objective-C运行时.
轻量级.只需2500行代码.它占用空间非常小,因此适用于CPU和内存受限的设备.调整性能.
使相同基类或协议的多个配置变得容易.
没有神奇的字符串 - 支持IDE重构,代码完成和编译时检查.
支持注入视图控制器和故事板集成.
支持初始化和属性注入,以及生命周期管理.
强大的内存管理功能.提供预配置的对象,没有单例的内存开销.
对循环依赖性的出色支持.
经过实战测试 - 用于各种Appstore特色应用.
一个国际分布的核心团队(我们甚至监控StackOverflow),因此对您的任何问题的支持都是不可避免的:)
API文档和示例应用
Mer*_*ham 15
......是否存在值得检查的竞争框架?
反对意见是我在谷歌iOS上可以找到的DI库,所以如果你想要一个预建的库,你可能会被它困住.
DI并不特别要求使用框架.如果您的应用程序很小,您只需在应用程序根目录下创建所有实例并手动注入.
如果你需要更多,并且现有的框架没有为你削减它,你可以推出自己的服务定位器,然后在它上面构建一个DI容器.
您还可以从另一个平台移植现有的较小框架.有.Net的几个"小"的,例如- Ninject和SimpleInjector.
这是iOS的常见选择吗?
它似乎是一个相当小的项目,因为只列出了一个作者/贡献者.提交的问题不多.iOS市场相当大.所以我认为只有极少数的iOS开发人员使用这个库.
但这不一定是坏事.它似乎是由一家小公司创建,使用和支持的.它在过去一年中有相当稳定的更新.
我对类似范围的开源项目的轶事经验:我并不总是经常获得新功能,而且我经常是最终发现错误的人.但我倾向于很快得到现有功能集的支持,并且很多人都关注支持我发送的电子邮件.因人而异.
Tom*_*ner 11
好吧,我希望你原谅我一点插件,但我刚刚发布了自己的Objective-C DI框架:注射器
https://github.com/tomekc/Syringe
它的目的是简单和轻量级,我的主要目标是使其尽可能不突兀.我有很强的Java背景,所以我是在Google Guice和Spring之后设计的.