NSMutableArray中的类类型

时间:2012-10-26 19:41:24

标签: java objective-c class arraylist nsmutablearray

  

可能重复:
  Is there any way to enforce typing on NSArray, NSMutableArray, etc.?

我是Java程序员,我从Obj-C开始,在java中我可以创建一个具有确定类型的可变数组,如下所示:

ArrayList<MyClass> list;
在Obj-c中的

我知道NSMutableArray,但我不知道,也没有找到如何确定类的类型。

有没有办法在没有NSMutableArray的情况下使用它或其他类可以做到这一点?

非常感谢。

2 个答案:

答案 0 :(得分:4)

不,Cocoa / Objective-C不提供这样的类型化集合。集合中的所有对象都必须继承自NSObject(基本上除了基元和结构之外的所有对象),但除此之外,由您来理解/管理数组中发生的事情。 NSMutableArray中的对象在其接口中由泛型id表示。


从设计的角度来看,Cocoa中的集合通常包含同质类型的对象。数组的名称通常用于指示其中的内容(就像在Java中一样),例如bookTitlesArray或仅bookTitles(即字符串)。此外,从抽象的角度来看,有时使用轻量级类来“包装”原始NSMutableArray以在接口处强制执行类型检查。例如,一个名为BookTitleList的新类,它提供了添加,查找,删除方法的子集,并在例如...之后将它们传递给内部数组。验证。但YMMV取决于您的需求。

答案 1 :(得分:0)

虽然Objective C中没有类型参数,但是你会发现它比Java中更少,因为你不需要向下转换来调用方法。在这方面,Objective C更像是JavaScript。