gpt4 book ai didi

objective-c - Objective-C 中的只读属性?

转载 作者:IT老高 更新时间:2023-10-28 11:21:05 29 4
gpt4 key购买 nike

我已经在我的界面中声明了一个只读属性:

 @property (readonly, nonatomic, copy) NSString* eventDomain;

也许我对属性有误解,但我认为当您将其声明为readonly时,您可以在实现(.m)文件中使用生成的setter ,但外部实体无法更改该值。 This SO question说这就是应该发生的事情。这就是我所追求的行为。但是,当尝试使用标准 setter 或点语法在我的 init 方法中设置 eventDomain 时,它会给我一个 unrecognized selector sent to instance. 错误。当然,我是在 @synthesizeing 属性。尝试像这样使用它:

 // inside one of my init methods
[self setEventDomain:@"someString"]; // unrecognized selector sent to instance error

那么我误解了属性上的 readonly 声明吗?还是发生了其他事情?

最佳答案

您需要告诉编译器您还需要一个 setter。一种常见的方法是将其放入 class extension在 .m 文件中:

@interface YourClass ()

@property (nonatomic, copy) NSString* eventDomain;

@end

关于objective-c - Objective-C 中的只读属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4586516/

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