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

posted @ 2015-07-09 18:02  敏迪  阅读(161)  评论(0编辑  收藏  举报