我无法理解这两段代码之间的区别,因为它们的行为方式相同。
- (NSArray *)handleImages
{
NSMutableArray *images = [NSMutableArray new];
//...Do something with the array..
return [images copy];
}
- (NSArray *)handleImages
{
NSMutableArray *images = [NSMutableArray new];
//...Do something with the array..
return images;
}
答案 0 :(得分:2)
该方法设置为返回不可变数组。第一个版本在返回之前将它创建的可变数组转换为不可变数组。第二个版本只返回可变数组。第一个版本是一个 clean ,因为调用者需要一个不可变的数组。
答案 1 :(得分:0)
第一个方法返回不可变数组,在这里你不能修改返回的对象。
但第二种方法返回可变数组,您可以在其中修改返回的对象
例: `
- (NSArray *)handleImages
{
NSMutableArray *images = [NSMutableArray new];
//...Do something with the array..
return images;
}
-(void)anyMethod
{
NSMutableArray *array = (NSMutableArray *)[self handleImages];
if([array respondsToSelector:@selector(addObject:)])
{
[array addObject:@"Any Object"]; // You can add any object to this array
}
}
`