使用NSString作为NSStrings数组?

时间:2012-01-12 22:20:25

标签: iphone objective-c nsstring nsarray

我刚刚遇到了一个由同事写的代码,我以前从未在Obj-C中看过这个代码。它看起来很糟糕,我想改变它,但它似乎有效(应用程序按预期工作),我甚至不知道该改变它。

NSString **stringArray= new NSString *[numberOfStrings];

这样好吗? NSAtrings的NSArray会更有意义吗?

编辑:为了从内存中正确释放阵列,是否需要进行release次呼叫?目前,我看到的只是delete [] stringArray;

编辑2:这似乎从内存中正确删除了数组:

for (int i=0; i < numberOfStrings; i++)
{
    [stringArray[i] release];
}
delete [] stringArray;

2 个答案:

答案 0 :(得分:4)

对于没有C背景的人来说,使用NSArray可能更容易辨认,这只是一个充满NSString*的普通旧C数组,完全有效但与NSArray实例完全不同

两者都有意义,但是如果该数组的用户期望使用C风格的数组而不是NSArray实例,那么可能会涉及很多重构。

答案 1 :(得分:3)

他正在使用Objective-C ++(您应该能够在右侧面板上的'文件类型'中验证xcode4中的文件)。

new关键字会创建一个新的(NSString *)数组,其大小为numberOfStrings

要回答您的问题,NSArray很可能更容易管理,特别是如果代码上有不同的开发人员。要使用C ++数组,可能存在性能问题,但这取决于该代码的上下文。