Person
類, 並添加age
屬性main
函數中使用Person
, 能夠發現程序正常結束Person.m
中添加@dynamic age;
, 運行程序-setAge:
方法找不到setAge:
方法, 再次運行, 程序依然報錯, 這個時候的錯誤時-age
方法找不到setAge:
方法中添加_age = age;
, 能夠看到編譯器報錯, 不存在成員變量_age
@dynamic
的做用就是: 告訴編譯器不要生成setter
和getter
方法, 同時不要生成_age
成員變量, 等到運行時再添加方法實現動態方法解析
來添加方法的實現, 以下圖