我想创建一个可以使用NSMutableArray
或NSArray
对象的方法。
我想我可以使用(id)作为参数类型...或者在传递之前将NSArray
转换为NSMutableArray
。但是我对这些解决方案并不满意。
在其他语言中,我可能会传递一个IList
或一些他们都继承的共享对象......
我需要在我的方法中枚举数组。
人们通常会在目标c中做到这一点的方式是什么?
答案 0 :(得分:16)
选择NSArray
。 NSMutableArray
来自NSArray
,因此只要您只使用NSArray
成员(例如只读枚举),您就会安全。
相关文档(来自Apple开发者网站):
答案 1 :(得分:5)
由于NSMutableArray
是NSArray
的子类,所以只需让您的方法采用NSArray
参数。这样,它将需要NSArray
的任何子类,或者是{{1}}的子类。
答案 2 :(得分:2)
使用NSArray*
- NSMutableArray
从中继承,您可以像NSArray
一样进行迭代。
答案 3 :(得分:1)
我会坚持使用NSArray作为参数,因为我更喜欢尽可能使用不可变对象(更松散的耦合),然后在需要时使用-mutableCopy
方法将它们发送到需要修改的函数阵列。