我们可以在类别中设置只读属性吗?

时间:2014-06-16 13:24:59

标签: ios iphone categories

我有以下代码:

Student.h
@property(strong, nonatomic, readOnly) NSString *name;

Student.m
@property(strong, nonatomic, readWrite) NSString *name;

如果我尝试在类别中设置名称(例如Student+Details.h)会发生什么? 例如     self.name = @“Rohit”;

如果在其他课程中尝试过,例如

StudentDetailsVC.m
Student *student = [[Student alloc] init];
student.name = @"Rohit";

忽略语法错误。我在这里手动输入以解释情况。

1 个答案:

答案 0 :(得分:1)

您将收到编译错误,如果您设法说服编译器忽略该错误(通过使用#pragma或编译器选项),那么您将收到运行时错误(未知选择器) setter方法不存在。

但是,如果您知道支持该属性的实例变量,则可以直接设置它。

有可能被称为_name

_name = @"Andy";