如果我想返回一个不可变数组,如+ (NSArray *)ids
,但在此方法内部,我声明NSMutableArray
,因为我想使用-sortUsingSelector:
对它进行排序。返回NSMutableArray而不是声明NSArray的Objective-c返回方法返回类型
返回此方法的工作完美。
但它是“好”编写的代码,声明回报方法应该是同一类型和实际类型是另一个?
请问这是否是因为
NSMutableArray
是NSArray
的子类?实际回报值是
NSArray
还是NSMutableArray
?
在任何语言中,函数的实际返回类型可以是声明的返回类型的子类型作为结果[Liskov替代原则](http://en.wikipedia.org/wiki/Liskov_substitution_principle)。 – outis