objective-c - IOS5编程和Objective C中的依赖注入(inject)

标签 objective-c ios5 dependency-injection

假设我有一个由应用程序创建的库或服务,我的 UIViewControllers 由 Storyboard提供。我想使用 dependency injection在创建这些对象时将它们传递给 ViewController。

  1. 定义包含常用实用函数的服务或类的最佳位置在哪里?我可以使用单例,但我正在探索其他选项,例如在将显示的第一个 UIViewController 中创建它。该对象很可能是一些在不同 UIViewController 之间使用的逻辑,例如访问数据库,或访问不同 Controller 之间共享的模型,或业务/游戏逻辑。

  2. 如何将该对象注入(inject)到将使用 Storyboard显示的第一个 UIViewController 中?

  3. 执行 segue 时,是否有某种方法可以调用下一个 UIViewController 的初始化程序以传递依赖项?据我所知,当代码到达 prepareForSeqgue 时,下一个要显示的 UIViewController 已经创建。

基本上,我想做这样的事情:

-(void) hypotheticalApplicationStart
{
   self.gameLogic = [[GameLogic alloc] init];
} 

然后当创建第一个 UIViewController 并推送以供查看时:

-(void) hypotheticalDisplayFirstViewController
{
   UIViewController* controller = [[ MyView alloc] int];
   [controller setGameLogic:self.gameLogic)];

   // display controller
}

*对于任何代码错别字或语法错误,我深表歉意,我刚刚开始学习 Objective C 和 IOS5 编程。

最佳答案

您可以选择任何 Cocoa Dependency Injection Framework在 GitHub 上。

关于objective-c - IOS5编程和Objective C中的依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12193262/

相关文章:

ios - 采用Objective-C协议(protocol)并返回NSArray

ios - 除了 TableView 已包含的先前数据之外,如何向 TableView 添加新数据?

java - 应用服务器如何注入(inject)私有(private)字段?

c# - 从代码隐藏创建用户控件时找不到静态资源

iphone - 如何在 iOS 中插入和覆盖音频文件

iphone - iOS:Facebook 发布隐私

ios - 如何在运行时检查属性是否被声明为@dynamic

iphone - 调用AudioServicesPlaySystemSound时出现2个错误?

iphone - 是否有可在电子邮件、短信或其他 "share this app"消息中使用的全局 iTunes URL?

c# - EF6 DbContext IOC 依赖