Iphone 内存管理阵列

Iphone 内存管理阵列,iphone,objective-c,ipad,Iphone,Objective C,Ipad,我正在应用程序中创建几个阵列,例如: NSString *ItemsA[91]; int GroupRep[11]; double TaxR[16]; short InputT[200]; BOOL tmpEx[20]; 并且需要这些结构在应用程序中可用,直到应用程序结束。 我的问题是: 我我是否需要显式地分配NSString的数组,或者可以这样初始化每个数组单元格:例如ItemsA[10]=@“use option1” 二,。我是否需要释放或解除锁定上述任何阵列 iii.我理解如

我正在应用程序中创建几个阵列,例如:

NSString *ItemsA[91];
 int GroupRep[11];
 double TaxR[16];
 short InputT[200];
 BOOL tmpEx[20];  
并且需要这些结构在应用程序中可用,直到应用程序结束。 我的问题是: 我我是否需要显式地分配NSString的数组,或者可以这样初始化每个数组单元格:例如ItemsA[10]=@“use option1”

二,。我是否需要释放或解除锁定上述任何阵列

iii.我理解如果我没有特别使用alloc,那么iOS将自动执行保留/发布操作。如果是,那么:

UITapGestureRecognizer *gestur1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dispR)];
类似地,我正在创建一个类:

   myClass=[[PieClass alloc]initWithFrame:CGRectMake(1+ipX, ipY, 320, rView.frame.size.height)];
    ...
    [myClass release]
这个班分配他自己的东西。我需要释放每一个或只是整个类如上所述就足够了


谢谢一般来说,不要使用语言数组来存储对象。使用
NSMutableArray
实例;它们的开销相对较小(可能无法测量),而且更为自然

您还需要将任何要显示的值存储在可本地化的文件中。因此,您需要加载所述文件,并且再次将它们存储在NSArray中要容易得多。在developer.apple.com上有关于这个主题的大量文档

最后,这看起来像你的应用程序数据。因此,您可能真的希望有一个适当的模型层来管理所述数据。有一天,你可能会想要重构应用程序,从服务器中提取上述数据,而拥有一个合适的模型层将有助于你做到这一点

请注意,您通常可以将模型(数据管理内容)挂起,使其脱离应用程序委托。或者你也可以通过某个地方的单身汉找到它


这是一个高层次的回答,目标是尝试引导您找到一条更符合预期模式的路径。

感谢您的输入。设置一个数据层听起来是个好主意,在我重构应用程序时也可以。现在我只想深入研究内存管理,虽然我知道基本规则,即如果你分配、复制或新建对象,你就拥有它,但有时我不确定到底什么时候释放obj内存。例如,如果我有一个方法,用一些值和计算初始化一个数组,并且在其中有alloc。我需要通过应用程序获取这些值,如果我需要重新计算新值,有时需要再次调用该方法,那么何时释放alloc?在应用程序结束时,还是在我调用该方法之前或之后?希望它有意义,如果需要,我可以详细说明。我不确定我是否理解“数据管理的东西--从您的应用程序代理中”。。。如果你能详细说明一下,那就太好了。