在 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 - Cocoa/Objective-C 中有类似通用列表的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/793644/