NSArray如何运作?与Java的ArrayList相比

con*_*sed 2 objective-c

无论如何,与Java ArrayList相比,是否有获得NSArray的等价物?

但是,我正在尝试做的事情(一分钟学习Objective-C)有一个6个整数的NSArray.允许自己"索引"到这些整数的特定点并设置一个整数.然后检查NSArray是否为零或零,如果不是则循环并将整数打印到屏幕上的某个标签(示例).

这可能吗?看来文档并不是最好的.虽然我发现Apple的一般iPhone开发教程非常有用!

小智 5

对于您想要做的事情,执行java.util.List和之间的主要区别NSArray是:

  • Objective-C没有"autoboxing",因此您不能只将3之类的数字传递给数组并让它存储正确的对象.你必须自己明确地把它包在一个实例NSNumber,通过做[NSNumber numberWithInt:3]
  • 任何实现都List可以选择实现.add().remove()API.在Foundation中,有一个子类NSArray允许您更改其内容,称为NSMutableArray.
  • Objective-C没有泛型,所以你不能做相当于 List<String>

除此之外,ListNSArray非常相似:每个是抽象的,告诉你如何使用一个执行对象,但不执行该对象的工作方式.例如,a ArrayList是使用数组实现的,但是NSArray根据您尝试使用的内容动态选择适当的实现.