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