保持一组对象共享的方法

时间:2011-12-05 12:26:09

标签: objective-c

我对objective-c相当新。 我正在尝试为游戏应用的未来发展开发大部分实验性项目。

我想就以下目的使用什么提出建议。

我正在尝试在objective-c中保留一组对象(比如像Array这样的东西)。我希望在我的应用程序中可以使用该组对象(不同的功能等)。这组对象必须准备好编辑,因此NSArray(我猜)是不可能的?一定是。

我正在努力学习概念并仍在寻找正确的方法来做这样的事情,试图强制使用一些全局数组,但我认为这不是一个好的做法。

非常感谢任何帮助,谢谢。 (请善意地提供一些进一步的解释,说明为什么我应该使用这个 - 你的建议 - 而不是别的。这样你就会帮助我更好地掌握这个想法。)

2 个答案:

答案 0 :(得分:1)

如果它是需要在整个应用程序中共享的一组对象,并且您想回避全局变量,那么我认为您有一个不错的选择:

通过在应用程序委托中创建和存储集合(应该是NSMutableArrayNSArray的可编辑版本),它可以在任何地方访问:

//MyAppDelegate.h
@property (nonatomic, retain) NSMutableArray *_editableArray;

//MyAppDelegate.m
- (void)applicationDidFinishLaunching {
    _editableArray = [[NSMutableArray alloc] init];
    // Add objects if you'd like
}

然后你可以在任何地方访问它,如下:

// In other classes
((CastToYourAppDelegateClass *)[NSApp delegate]).editableArray;

请记住,如果您要在任何后台线程(或使用GCD)上访问/编辑此数组,则必须确保访问权限已正确同步。 (你打算这样做吗?)

答案 1 :(得分:0)

为什么不直接为共享对象实现Singleton模式,将NSMutableArray作为其中一个属性?