objective-c - NSArray 是如何运行的?与 Java 的 ArrayList 相比

标签 objective-c

与 Java ArrayList 相比,是否有办法获得 NSArray 的等效项?

但是,我想做的(目前正在学习 Objective-C)是拥有一个包含 6 个整数的 NSArray。让我自己“索引”到这些整数的特定点并设置一个整数。然后检查 NSArray 是否为空或零,如果不是则循环并将整数打印到屏幕上的某个标签(示例)。

这可能吗?该文档看起来根本不是最好的。尽管我发现 Apple 关于一般 iPhone 开发的教程非常有用!

最佳答案

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

  • Objective-C 没有“自动装箱”功能,因此您不能只将 3 这样的数字传递给数组并让它存储正确的对象。您必须自己显式地将其包装在 NSNumber 的实例中,通过做[NSNumber numberWithInt:3]
  • 任何 List 的实现可以选择实现.add().remove() API。在Foundation中,有一个子类NSArray允许您更改其内容,称为 NSMutableArray .
  • Objective-C 没有泛型,因此您无法执行 List<String> 的等效操作

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

关于objective-c - NSArray 是如何运行的?与 Java 的 ArrayList 相比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4364922/

相关文章:

ios - 将程序化的 UIView 发送到 Storyboard 中添加的 UIView

ios - 我什么时候应该停止更新位置管理器?

ios - 将图像从 Web 服务加载到 UIImage 无法正常工作

iphone - 如何访问 iOS 4.0+ 相机拍摄的照片中的照片 EXIF?

ios - 发现多个名为 'setTransform:' 的方法具有不匹配的结果、参数类型或属性

objective-c - 为什么 [super class] 和 [self class] 产生相同的结果?

ios - 如何将预填充的 sqlite 文件导入到 ios 应用程序并请求查询

c++ - static const byte ASCII 错误(可能是错误的实现)

ios - 'CLLocationManager'的可见@interface没有声明选择器'requestAlwaysAuthorization'

objective-c - 为 NSString 编写 unicode char 格式