有了从NSArray和NSMutableArray获得的所有有用的东西,为什么你会使用带有Objective-C对象的“C Style”数组?
NSString *array[] = {@"dog", @"cat", @"boy"};
答案 0 :(得分:5)
对于简短的固定数组,一个漂亮的紧凑初始化语法(正如你所演示的)的可用性可能很好。在某些情况下,与使用NSArray相比,C样式数组也可以提供性能优势。想到的另一件事是NSArray不提供对多维数组的任何内置支持,而多维C数组很容易。
当然,事实上你只能在NSArray中存储对象,而不是C-primitive类型,但你特别要求使用带有Objective-C对象的C数组。
答案 1 :(得分:1)
所有有用的东西都需要付出代价。
是否曾尝试制作NSArray
ints
?你不能。您必须使用NSNumber
。
为什么呢?因为NSArray
不知道如何处理事情,所以它不知道如何进行内存管理......并且唯一符合内存管理要求的事情是基于NSObject
的事情。
这只是一个例子,但还有很多其他的例子。
最重要的是,对任何事情都很少有一个单一的“最佳”答案。 NSArray
也不例外。