创建一个全局NSMutableArray

时间:2013-09-18 03:21:43

标签: nsmutablearray global

我有很多View Controller,并且都使用相同的Class(ViewController)。

在ViewController.m中我有这段代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    pedidoNomeArray = [[NSMutableArray alloc] init];
    pedidoValorArray = [[NSMutableArray alloc] init];
}

当我转到View Controller number 2时,我的数组pedidoNomeArray和pedidoValorArray为空。

我需要做什么才能在我的所有View控制器中使用相同的数组?

感谢

1 个答案:

答案 0 :(得分:1)

一个原因可能是您没有使用ARC。在这种情况下,您将新初始化的数组直接分配给ivar,即不使用setter。在这种情况下,数组不会保留,并在应用程序进入运行循环后立即释放。因此,如果您不使用ARC,请改用pedidoNomeArray = [[[NSMutableArray alloc] init] retain];。但是你应该真正使用ARC,因为它避免了大多数常见的内存管理问题。

编辑(由于你发表评论):
现在在我看来,你需要的是一个根据MVC software architecture pattern的数据模型。您的数据存储在一个独立的对象中,并且两个视图控制器都引用了该对象。包含“全局数组”的数据模型可以实例化,例如在您的应用程序委托或根视图控制器中,这是有争议的,示例和讨论请参阅here。我希望这会有所帮助。