小碼哥iOS學習筆記第十四天: @dynamic

1、準備代碼

  • 定義Person類, 並添加age屬性

  • main函數中使用Person, 能夠發現程序正常結束

2、@dynamic

  • Person.m中添加@dynamic age;, 運行程序
  • 能夠看到程序發生錯誤, -setAge:方法找不到

  • 手動添加setAge:方法, 再次運行, 程序依然報錯, 這個時候的錯誤時-age方法找不到

  • setAge:方法中添加_age = age;, 能夠看到編譯器報錯, 不存在成員變量_age

  • 因此@dynamic的做用就是: 告訴編譯器不要生成settergetter方法, 同時不要生成_age成員變量, 等到運行時再添加方法實現

3、利用動態方法解析, 添加方法的實現

  • 咱們能夠利用動態方法解析來添加方法的實現, 以下圖

相關文章
相關標籤/搜索