我有许多与以下函数类似的功能:
+ (NSArray *)arrayOfSomething
{
NSMutableArray *array = [NSMutableArray array];
// Add objects to the array
return [[array copy] autorelease];
}
我的问题是关于这个方法的最后一行:是返回可变对象并避免复制操作更好,还是返回不可变副本?有没有好的理由避免在不期望的情况下返回可变对象?
(我知道返回NSMutableArray是合法的,因为它是NSArray的子类。我的问题是这是否是一个好主意。)
注:mutable object指可变对象,immutable copy指不可变副本。