1

可能重复:
有没有办法强制在 NSArray、NSMutableArray 等上输入?

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

ArrayList<MyClass> list;

在 Obj-c 中我知道 NSMutableArray 但我不知道也没有找到如何确定类的类型。

有没有办法用它或其他没有 NSMutableArray 的类来做到这一点?

非常感谢。

4

2 回答 2

4

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


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

于 2012-10-26T19:44:33.943 回答
0

尽管 Objective C 中没有类型参数,但您会发现它比 Java 中的麻烦要少得多,因为您不必向下转换即可调用方法。在这方面,Objective C 更像 JavaScript。

于 2012-10-26T19:47:44.587 回答