我有以下代码:
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";
忽略语法错误。我在这里手动输入以解释情况。
答案 0 :(得分:1)
您将收到编译错误,如果您设法说服编译器忽略该错误(通过使用#pragma
或编译器选项),那么您将收到运行时错误(未知选择器) setter方法不存在。
但是,如果您知道支持该属性的实例变量,则可以直接设置它。
有可能被称为_name
:
_name = @"Andy";