【发布时间】:2010-01-16 23:04:34
【问题描述】:
在 Objective-C 中获得对“单例”对象的引用的好方法是什么?请注意,具体来说,我指的不是单例模式,而是指通常只有一个实例的对象。这特别适用于应用程序模型。例如,在一个烹饪应用程序中,我想要一个类 (RecipeModel),它可以为我提供系统中所有“Recipe”对象的 NSArray。
我不想每次都从持久存储中加载它们——加载它们一次然后将它们缓存在内存中(换句话说,在这个类的一个变量中)是有意义的。如果我这样做,我的几个类可能需要一种方法来访问这个实例。
最灵活的方法是什么?这是我能想到的所有选项。
- 使用 +(RecipeModel *) sharedRecipeModel 方法使 RecipeModel 成为真正的单例
- 使 allRecipes NSArray 可通过类方法访问。然后每个 viewController 可以创建一个新的 RecipeModel 并获得相同的(静态/全局)数据。 +(NSArray *) 所有食谱
- 在 appDelegate 中创建它并使用 sharedApplication 获取对它的引用
- 确保一切都在界面生成器中,并使用 IBOutlet 将类的副本传递给我的 viewController
在其他平台 (flex) 上,我会使用 DependencyInjection 或 MVC 框架来处理这种连接。我读过objective-c 不需要DI 框架,因为它有类别。我知道的不够多,无法评估,但类别当然不能解决这个问题。
【问题讨论】:
标签: iphone objective-c model-view-controller architecture dependency-injection