Objective-C 中 Java ArrayList 的等效项

San*_*eep 2 java generics collections objective-c ios

在 Objective-C 中,相当于List<Products> cartProduct = new ArrayList();. 我使用 NSMutableArray 但这与 Java ArrayList 不同。

Dun*_*n C 5

在我看来,JavaArrayLists使用泛型。

Objective-C 并不真正支持泛型。(Swift 可以。您可能想改用 Swift。)

Objective-C 的集合类 (NSArrayNSMutableArray) 是异构的。它们可以包含不同类型的对象的混合。然而,该语言最近添加的内容增加了一层非常薄弱的​​通用支持。

你可以使用这样的语法:

NSMutableArray <Products *> *cartProduct;
Run Code Online (Sandbox Code Playgroud)

该语法仅添加编译时类型检查。它告诉编译器这cartProduct是一个可变数组,应该只包含 类型的对象Products,因此当您从数组中添加/获取其他类型的对象时,您会收到警告,但该数组在运行时仍会获取任何类型的对象。

我发现此链接详细解释了 Objective-C 对泛型的“轻量级”支持。看起来很清楚并且写得很好。