Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS推荐的IoC框架?_Ios_Dependency Injection_Inversion Of Control - Fatal编程技术网

iOS推荐的IoC框架?

iOS推荐的IoC框架?,ios,dependency-injection,inversion-of-control,Ios,Dependency Injection,Inversion Of Control,有人能为iOS推荐一个好的IoC框架来促进依赖注入吗 到目前为止,我发现的唯一一个明显与Guice相似(不幸的是,我并不熟悉Guice)。这是iOS的常见选择吗?是否有值得一试的竞争框架 …是否有值得检查的竞争框架 是我可以在google for iOS上找到的DI库,所以如果你想要一个预构建的库,你可能会被它卡住 DI并不特别需要一个框架来使用。如果你的应用程序很小,你可以简单地在应用程序根目录下创建所有实例,然后手工注入 如果您需要的不止这些,而且现有框架无法满足您的需求,那么您可以滚动您自

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

到目前为止,我发现的唯一一个明显与Guice相似(不幸的是,我并不熟悉Guice)。这是iOS的常见选择吗?是否有值得一试的竞争框架

…是否有值得检查的竞争框架

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

DI并不特别需要一个框架来使用。如果你的应用程序很小,你可以简单地在应用程序根目录下创建所有实例,然后手工注入

如果您需要的不止这些,而且现有框架无法满足您的需求,那么您可以滚动您自己的服务定位器,然后在其上构建一个DI容器

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

这是iOS的常见选择吗

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

但这不一定是坏事。似乎是这样。它已经成功了


我在类似范围的开源项目中的轶事经历:我并不总是非常频繁地获得新特性,而且我常常是最终发现bug的人。但我倾向于很快获得对现有功能集的支持,而且很多注意力都集中在支持我发送的电子邮件上。YMMV.

好吧,我希望你能原谅我在这里插了一个小插头,但我刚刚发布了我自己的Objective-C的DI框架:注射器


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

Typhone

列出了主要功能。快速总结:

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

  • 轻量化。只有2500行代码。它的占用空间非常小,因此适用于CPU和内存受限的设备。为性能而调整

  • 使具有相同基类或协议的多个配置变得容易

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

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

  • 支持初始值设定项和属性注入,以及生命周期管理

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

  • 非常支持循环依赖关系

  • 经过战斗测试-用于各种Appstore特色应用程序

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

API文档和示例应用程序

  • API文档:
  • 我们有一些很好的示例应用程序,包括和

回答了这个问题。我想我的答案是及时的信息,所以在将来有更多的框架可用时,请随意更改accept。建议+1,甚至作为插件。如果您想以一种很好的方式向人们介绍DI(因为它在Objective-C世界中是一个相当未开发的概念),请看一看。NInject专注于构造函数注入,而不是基于属性的注入,但是他们的教程构建DI概念的方式很好。爱!尽管我对反对意见很感兴趣,但我更喜欢你如何实现自动化。尽管如此,反对意见还是提供了更多的灵活性。房产呢?你打算种植注射器吗?我目前在我的小型私人项目中使用它,我愿意听取用户的一些反馈。@Merlyn Morgan Graham感谢Ninject链接!你对反对意见的观察是准确和公正的。我无疑是该项目最大的贡献者——这意味着我通常会添加我需要的功能或受启发而制作的功能。我对bug的反应非常快。然而,我倾向于在相当长的一段时间内仔细考虑功能请求,因为我想确保反对的身份不会丢失,也不会变得“臃肿”。异议已在相对流行的应用中使用。根据与之相关的崩溃日志和我执行的性能测试,它不是崩溃或性能瓶颈的原因。反对意见经过了很好的检验:@justice:你有它被使用过的应用程序列表吗?这可能有助于图书馆的广告,让人们知道这些(当然,在网站上-在这里列出它们不会是犹太教)。可能需要得到许可。但推荐书往往有助于回答诸如“这个库有多受欢迎?”之类的问题,并有助于吸引新用户。我可以谈论的一个应用程序是“侧卷轴”。我们已经有一年没有在这方面积极工作了(Side Reel维护它)。但appstore已经多次推出了它,这是真正了解DI的唯一选择。谢谢你,贾斯珀@Jasper Blues我研究了这个和其他DI框架。即使在阅读了文档之后,我仍然没有得到使用它与手工操作相比的好处。使用此框架或任何框架似乎都非常重要,而且并非没有成本。您能提供建议吗?@Boon对StackExchange来说是个不错的问题。@aryaxt它是一个DI容器。内部模拟Spring(后处理器等)。当从一个顶级对象图(例如视图控制器)转到另一个顶级对象图时,我们向容器请求instanc