objective-c - Cocoa/Objective-C 中有类似通用列表的东西吗?

标签 objective-c cocoa list data-structures strong-typing

在 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/

相关文章:

ios - 使用 SpriteKit 画线并检测碰撞

cocoa - NSSearchField:搜索延迟多长时间?可以配置吗?

python如何将字符串中的某些字符大写

python - Python 中访问对象列表的异常循环行为

python - 如何制作一个 Python 程序来演示 Zipf 定律?

ios - 同时支持 iOS5 和 iOS6

objective-c - 从 NSString 中动态附加和删除子字符串

cocoa - NSString 保留问题

ios - 我无法让我的 ios 自定义 url 方案与数字一起使用

objective-c - 如何从另一个类访问 xib 中的 UIPicker?