NSArray 和普通数组有什么区别?

What is difference between NSArray and normal Array?

我是 Objective-c 的新人。我对 NSArray 和普通数组感到困惑。请告诉我何时使用 NSArray 以及何时使用普通数组?

NSArray 是一个 Objective-C 对象,它存储了 NSObject 的集合(例如 NSStringNSNumberNSDictionary、等等)

示例:

NSArray *myArray = @[@"String 1",@"String 2",@"String 3"];

(上面使用 Objective-C 文字来定义 NSStringsNSArray -- 参见 http://clang.llvm.org/docs/ObjectiveCLiterals.html

Objective-C 建立在 C 之上,其中还包括数组(小写 'a'),通常用作基本数据类型的集合(例如 intchar,等等),例如。

示例:

int myArray[10] = { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };

C 数组也可用于存储指针,指针可以指向内存中的对象,正如评论中 CRD/Jef 所指出的。

两者在某些情况下都很有用,但选择其中一种的常见原因之一是您是否需要存储对象或原语。虽然如上所述,C 数组可以处理对象,但通常更常见的做法是使用 NSArray 来处理它。

此外,NSArray 有很多方便的函数(例如 countlastObject)可以帮助您处理数据。请参阅有关 NSArray https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/

的 Apple 文档

注意:如果您需要不同大小的数组,请查看 NSMutableArray