2016-03-17 130 views
1

我来自Windows手机应用程序开发,我是iOS应用程序开发的新手。因此,请在Windows平台上与Caliburn micro进行比较,以了解与依赖注入相关的问题。我正在寻找iOS中的最佳做法。iOS依赖注入框架(最佳实践)

当前项目。 我最近进入了一个iOS团队,测试覆盖率非常差(12%)。原因在于没有代码隔离,而且模拟很困难,因为与UI相关的大量代码位于控制器中,并且它们没有分离到不同的类中。

我想获得一个依赖注入框架设置到这个项目中的代码覆盖率预先考虑。

问题, 考虑我选择了像Typhoon或Blood Magic之类的依赖注入框架或其他任何可用的依赖注入框架。我能够一部分做到吗?像一个ViewController一次。有关于此的任何提示?或任何有助于实现这一目标的框架?这个项目是一个包含大约150,000行代码的大项目。

任何帮助表示赞赏。我在iOS中总是noob,但我理解依赖注入的概念,因为我在Windows应用程序开发中大量使用它。

回答

1

嗨@golldy,欢迎来到iOS开发!

看来我完全相反:我有很多iOS开发经验,但只是阅读了依赖注入的内容,因此我以某种方式对它有所了解。 ;)

虽然似乎连Swift solution for dependency injection,也没有留下有关依赖性注入的任何估值的iOS我想指出,有很多方法可以从你的控制器 iOS中分离责任。

我同意对iOS中重载和不可测试视图控制器的批评。但我更喜欢像Coordinator suggestion by Khanlou这样的解决方案。也许你想看看?

祝您的测试顺利!

P.S: 注意Quick是编写测试(提高可读性,更DRY代码)的热门推荐和框架

0

在添加框架之前,请考虑使用Xcode中已经存在的标准工具链。 Xcode使用接口构建器来构造接口和原型对象图,可以在运行时取消存档。为了注入一些依赖项,只需在xib(或storyboard)中添加对象(NSObject),在inspector中填充Class属性,并进行插座连接。 NSObject有一些方法可以用来控制匿名进程:-awakeFromNib,-awakeAfterUsingCoder:等等。

更多关于nib文件的信息,请点击这里https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html外观对象加载过程部分