一种同时采用NSArray和NSMutableArray的方法

时间:2009-12-23 16:27:10

标签: objective-c cocoa cocoa-touch

我想创建一个可以使用NSMutableArrayNSArray对象的方法。

我想我可以使用(id)作为参数类型...或者在传递之前将NSArray转换为NSMutableArray。但是我对这些解决方案并不满意。

在其他语言中,我可能会传递一个IList或一些他们都继承的共享对象......

我需要在我的方法中枚举数组。

人们通常会在目标c中做到这一点的方式是什么?

4 个答案:

答案 0 :(得分:16)

选择NSArrayNSMutableArray来自NSArray,因此只要您只使用NSArray成员(例如只读枚举),您就会安全。

相关文档(来自Apple开发者网站):

答案 1 :(得分:5)

由于NSMutableArrayNSArray的子类,所以只需让您的方法采用NSArray参数。这样,它将需要NSArray的任何子类,或者是{{1}}的子类。

答案 2 :(得分:2)

使用NSArray* - NSMutableArray从中继承,您可以像NSArray一样进行迭代。

答案 3 :(得分:1)

我会坚持使用NSArray作为参数,因为我更喜欢尽可能使用不可变对象(更松散的耦合),然后在需要时使用-mutableCopy方法将它们发送到需要修改的函数阵列。