如果我想返回一個不可變數組,如+ (NSArray *)ids
,但在此方法內部,我聲明NSMutableArray
,因爲我想使用-sortUsingSelector:
對它進行排序。返回NSMutableArray而不是聲明NSArray的Objective-c返回方法返回類型
返回此方法的工作完美。
但它是「好」編寫的代碼,聲明回報方法應該是同一類型和實際類型是另一個?
請問這是否是因爲
NSMutableArray
是NSArray
的子類?實際回報值是
NSArray
還是NSMutableArray
?
在任何語言中,函數的實際返回類型可以是聲明的返回類型的子類型作爲結果[Liskov替代原則](http://en.wikipedia.org/wiki/Liskov_substitution_principle)。 – outis