我在接口中声明了一个只读属性:

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

也许我误解了属性,但我认为当您将其声明为readonly时,可以在实现(.m)文件中使用生成的setter,但外部实体无法更改该值.This SO question表示这是应该发生的.这就是我想要的行为.然而,当试图在init方法中使用标准setter或dot语法设置eventDomain时,它给出了一个unrecognized selector sent to instance.错误.我当然要把房子租出go .试着这样使用它:

 // 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相关问答推荐

NSError 和 __autoreleasing

将 CSS 插入 UIWebView / WKWebView 中加载的 HTML

如何在 iPhone 应用程序的 UINavigationBar 中添加图像

如何在 UICollectionView 中居中行?

UIDatePicker,根据今天的日期设置最大和最小日期

Objective C const NSString * vs NSString * const

有没有一种简单的方法可以将 ISO8601 时间戳转换为格式化的 NSDate?

MKMapView MKPointAnnotation 点击​​事件

arc4random 和 arc4random_uniform 有什么区别?

iPhone - 时区便利方法之间的差异

'supportedInterfaceOrientations' 实现中的返回类型冲突: - 警告

如何用 Java 开发 iPhone 应用程序?

iOS 上 64 位的 BOOL

通过索引访问 NSMutableDictionary 中的对象

以编程方式查找 iphone 的语言环境货币

如何减小使用 UIImagePickerController 创建的视频的文件大小?

如何修复UIPopoverController 已弃用警告?

iOS ScrollView 需要约束 y 位置或高度

UIImage上的圆角

如何在 NSUserDefaults 中保存 NSMutablearray