当前位置:  开发笔记 > IOS > 正文

在Cocoa/Objective-C中是否有类似通用列表的东西?

如何解决《在Cocoa/Objective-C中是否有类似通用列表的东西?》经验,为你挑选了2个好方法。

我在C#中真正喜欢的是通用列表.一个只能包含一种对象的列表.在Cocoa/Objective-C中有类似通用列表的东西吗?到目前为止,我只知道NSArray谁将指向任何对象.



1> Mike Abdulla..:

在Cocoa应用程序中想要这通常是设计薄弱的标志.

NSArray是不可变的,因此它不会"获取指向任何对象的指针",并且可能在交给您时已包含正确的对象.我认为您更担心的是NSMutableArray您认为代码的其他部分可能会添加错误类型的对象.但是看看Cocoa本身; 将可变数组暴露为类设计的一部分是非常罕见的.

相反,您通常会公开NSArray一些修改该数组的方法.有点像:

@class Foo : NSObject
- (NSArray *)bars;
- (void)addBar:(Bar *)bar;
- (void)removeBar:(Bar *)bar;
@end

这通常只是通过编译器警告来阻止插入错误的对象,然后当然可以在内部添加断言-addBar:,-removeBar:如果您也希望.


仿制药不是一种弱设计,想要它们并不是设计薄弱的标志.它们恰好不适用于Objective-C.你的其余部分是有帮助的,但开场陈述是完全错误和误导.
-1非常不同意 - 否认将C#泛型添加到Objective C会
......是一个明确的改进.强类型和动态类型的语言支持是互补技术.预测:Objective C将在一天内实现C#样式泛型.
所以你对此的看法是"这是不必要的,并且希望它是一个弱设计的标志.当你可以通过定义一个繁琐的额外类而不是其自身的目的是模拟一个通用数组时,你为什么需要它呢?只有特定类型的代码行数很多很多倍?" 这似乎令人难以置信的asinine.

2> Ferruccio..:

Objective-C不支持通用编程.您总是可以使用Objective-C++和STL列表.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有