tips: @property 、@synthesize和@dynamic
property是什么
property只是accessors的shortcut
synthesize和dynamic
@synthesize
会在编译时创建accessors(需要时会创建ivar)。
@synthesize
只会创建不存在的方法。比如,如果已有自定义的setter, 那么不再创建setter。
@dynamic
essentially tells the compile"don't worry, a method is on the way". 使用了@dynamic
指令,编译器将不再在编译时创建accessors方法(以及ivar)。
@dynamic
适用于在runtime动态创建accessors方法的场景。
NSManagedObject
的子类使用@dynamic指令比较多。是因为core data有自己的数据存储。
Refs
http://stackoverflow.com/questions/1160498/synthesize-vs-dynamic-what-are-the-differences?lq=1