Objective-C中的C样式数组

时间:2011-12-23 01:44:58

标签: objective-c c arrays

有了从NSArray和NSMutableArray获得的所有有用的东西,为什么你会使用带有Objective-C对象的“C Style”数组?

NSString *array[] = {@"dog", @"cat", @"boy"};

2 个答案:

答案 0 :(得分:5)

对于简短的固定数组,一个漂亮的紧凑初始化语法(正如你所演示的)的可用性可能很好。在某些情况下,与使用NSArray相比,C样式数组也可以提供性能优势。想到的另一件事是NSArray不提供对多维数组的任何内置支持,而多维C数组很容易。

当然,事实上你只能在NSArray中存储对象,而不是C-primitive类型,但你特别要求使用带有Objective-C对象的C数组。

答案 1 :(得分:1)

所有有用的东西都需要付出代价。

是否曾尝试制作NSArray ints?你不能。您必须使用NSNumber

为什么呢?因为NSArray不知道如何处理事情,所以它不知道如何进行内存管理......并且唯一符合内存管理要求的事情是基于NSObject的事情。

这只是一个例子,但还有很多其他的例子。

最重要的是,对任何事情都很少有一个单一的“最佳”答案。 NSArray也不例外。