Person
类, 并添加age
属性main
函数中使用Person
, 能够发现程序正常结束Person.m
中添加@dynamic age;
, 运行程序-setAge:
方法找不到setAge:
方法, 再次运行, 程序依然报错, 这个时候的错误时-age
方法找不到setAge:
方法中添加_age = age;
, 能够看到编译器报错, 不存在成员变量_age
@dynamic
的做用就是: 告诉编译器不要生成setter
和getter
方法, 同时不要生成_age
成员变量, 等到运行时再添加方法实现动态方法解析
来添加方法的实现, 以下图