gpt4 book ai didi

objective-c - 为什么我提供getter和setter时需要写@synthesize?

转载 作者:太空狗 更新时间:2023-10-30 03:31:23 24 4
gpt4 key购买 nike

所以属性的自动合成很棒。但是,当您同时提供 getter 和 setter 时,会出现错误。

@property (strong, nonatomic) NSArray *testArray;

- (NSArray *)testArray {
return _testArray;
}

- (void)setTestArray:(NSArray *)testArray {
_testArray = testArray;
}

错误:使用了未声明的标识符“_testArray”

添加 @synthesize testArray = _testArray; 解决了这个问题。我只是想知道这是为什么?

最佳答案

当您同时提供 getter 和 setter 时,通常根本不需要实例变量,即当您只是转发这些消息或将数据存储在其他地方时。

一旦缺少其中一个,就需要 ivar 来合成该功能。

如果我没记错的话,对于只读属性,模拟假设也成立。

关于objective-c - 为什么我提供getter和setter时需要写@synthesize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12918388/

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