gpt4 book ai didi

iphone - 为什么 mutableCopy 在这里?

转载 作者:行者123 更新时间:2023-11-29 11:03:13 24 4
gpt4 key购买 nike

我在学习Your Second iOS App苹果公司。该项目基于 ARC。

在研究示例时,我对示例中的以下代码有疑问:

// header
@interface BirdSightingDataController : NSObject

@property (nonatomic, copy) NSMutableArray *masterBirdSightingList;

@end

// implementation
- (void)setMasterBirdSightingList:(NSMutableArray *)newList {
if (_masterBirdSightingList != newList) {
_masterBirdSightingList = [newList mutableCopy];
}
}

- (void)initializeDefaultDataList {
NSMutableArray *sightingList = [[NSMutableArray alloc] init];
self.masterBirdSightingList = sightingList;


}

我不知道为什么这段代码会覆盖 masterBirdSightingList 的默认设置方法。

masterBirdSightingList 属性的类型为 NSMutableArray 并被复制到 _masterBirdSightingList 实例变量,该变量的类型为 NSMutableArray也是。我认为这是完美的。

为什么 _masterBirdSightingList = [newList mutableCopy]; 在这里?以防万一 setMasterBirdSightingList: 使用 NSArray 类型的参数调用?

最佳答案

这是必需的,因为默认实现将简单地调用 copy 并且您最终将得到一个不可变数组而不是可变数组。

关于iphone - 为什么 mutableCopy 在这里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14846055/

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