@property实现with@dynamic或之间有什么区别@synthesize?
@property
@dynamic
@synthesize
@synthesize 将为您的属性生成 getter 和 setter 方法。@dynamic 只是告诉编译器 getter 和 setter 方法不是由类本身实现的,而是由其他地方实现的(如超类或将在运行时提供)。
@dynamic 的使用例如与NSManagedObject(CoreData) 的子类一起使用,或者当您想要为未定义为出口的超类定义的属性创建出口时。
NSManagedObject
@dynamic 也可用于委派实现访问器的责任。如果您自己在类中实现访问器,那么您通常不使用@dynamic。
超级班:
@property (nonatomic, retain) NSButton *someButton; ... @synthesize someButton;
子类:
@property (nonatomic, retain) IBOutlet NSButton *someButton; ... @dynamic someButton;