Interface Builder可以用于Cocoa应用程序中的基本依赖项注入,但是当您不想在NIB文件中实例化对象时,有人知道更完整的Objective-C/Cocoa依赖项注入框架吗?

Edit

为了澄清,我承认IB可以用于基本DI,但我正在寻找一个功能更完整的框架,包括单独的生产和测试配置,与Groovy或Spring类似.

推荐答案

我想你会发现,在Objective C、Ruby、Lisp等后期绑定语言中不需要它.就像Jamis透露的,当他试图构建Ruby-Net::SSH revisited的DI框架needle时,他正在走一条过于复杂的道路.

下面是一些链接,希望能为您提供一些在Objective C中执行类似操作的示例代码.使用类别,您可以在运行时基本上更改任何类的行为.参见Mac Developer Tips – Objective-C: CategoriesCocoa API docs on categories.本质上,你不需要一些中心位置来要求"做x的东西"是可配置的,因为你可以直接实例化做x的东西,如果其他东西需要改变/钩住该行为,它可以使用类别.

Objective-c相关问答推荐

UIAlertController:supportedInterfaceOrientations 被递归调用

如何通过仅更改高度而不更改宽度来调整 UILabel 的大小?

检测时间格式是 12 小时还是 24 小时格式

使用正则表达式搜索 NSString

如何向 UILabel 添加滚动功能

Objective-C 中的正式协议和非正式协议有什么区别?

使用 UIScrollView 用两根手指滚动

如何将 UInt32 设置为最大值

声明变量id和NSObject *有什么区别?

NSUserDefaults 的限制是什么?

如何判断特定的 ViewController 视图当前是否可见?

接口类型不能静态分配?

iOS 5 不允许将下载的数据存储在 Documents 目录中?

首次提交应用内购买以供审核

使用单独的委托/数据源时的 UITableView 问题

使用 NSLog 打印 NSData

AVAssetImageGenerator 提供旋转的图像

在 UITableView 的 iOS 文档目录中列出保存的文件?

笔尖中的原型单元而不是故事板

Apple 说 NSManagedObjectContext 归创建它的线程或队列所有时是什么意思?