@dynamic 与 @synthesize

  • @synthesize是默认选项,表示为属性自动生成getter方法和setter方法
  • @dynamic 需要在实现文件里注明。例如 @dynamic name;表示用开发者手动动态实现getter和setter方法,只读属性只需要提供getter。

  因为有些存取就是在运行时动态创建的。但是编译时缺少方法,会有警告。所以,为了避免这种警告,就用@dynamic,告诉编译器会动态创建getter和setter方法。

  core data中经常用到@dynamic,这样,core data 框架会在程序运行时为属性生成setter和getter方法。

原文地址:https://www.cnblogs.com/SimonGao/p/4932869.html