- @synthesize是默认选项,表示为属性自动生成getter方法和setter方法
- @dynamic 需要在实现文件里注明。例如 @dynamic name;表示用开发者手动动态实现getter和setter方法,只读属性只需要提供getter。
因为有些存取就是在运行时动态创建的。但是编译时缺少方法,会有警告。所以,为了避免这种警告,就用@dynamic,告诉编译器会动态创建getter和setter方法。
core data中经常用到@dynamic,这样,core data 框架会在程序运行时为属性生成setter和getter方法。