我在C#中真正喜欢的是通用列表.一个只能包含一种对象的列表.在Cocoa/Objective-C中有类似通用列表的东西吗?到目前为止,我只知道NSArray
谁将指向任何对象.
在Cocoa应用程序中想要这通常是设计薄弱的标志.
NSArray
是不可变的,因此它不会"获取指向任何对象的指针",并且可能在交给您时已包含正确的对象.我认为您更担心的是NSMutableArray
您认为代码的其他部分可能会添加错误类型的对象.但是看看Cocoa本身; 将可变数组暴露为类设计的一部分是非常罕见的.
相反,您通常会公开NSArray
一些修改该数组的方法.有点像:
@class Foo : NSObject - (NSArray *)bars; - (void)addBar:(Bar *)bar; - (void)removeBar:(Bar *)bar; @end
这通常只是通过编译器警告来阻止插入错误的对象,然后当然可以在内部添加断言-addBar:
,-removeBar:
如果您也希望.
Objective-C不支持通用编程.您总是可以使用Objective-C++和STL列表.