gpt4 book ai didi

objective-c - 返回可变或复制

转载 作者:行者123 更新时间:2023-12-04 06:51:08 25 4
gpt4 key购买 nike

如果您在 objective-c 中有一个使用可变对象构建数组或字典的方法,那么您应该复制该对象,还是返回可变版本?这可能是一个意见案例,但我一直无法下定决心。这里有两个例子来说明我在说什么:

- (NSArray *)myMeth
{
NSMutableArray *mutableArray = [NSMutableArray array];
for (int i=0; i<10; i++) {
[mutableArray addObject:[NSNumber numberWithInt:i]];
}
return mutableArray;//in order for calling code to modify this without warnings, it would have to cast it
}

- (NSArray *)myMeth
{
NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
for (int i=0; i<10; i++) {
[mutableArray addObject:[NSNumber numberWithInt:i]];
}

NSArray *array = [[mutableArray copy] autorelease];
[mutableArray release];
return array;//there is no way to modify this
}

最佳答案

这取决于该方法将用于什么,或者返回数组的意图用途是什么。

按照惯例,在返回可变数组之前复制和自动释放它被认为是正常的,从而遵守对象所有权约定并保护数据在返回后不被更改。

关于objective-c - 返回可变或复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3122227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com