小编典典

@synthesize 与 @dynamic,有什么区别?

all

@property实现with@dynamic或之间有什么区别@synthesize


阅读 123

收藏
2022-03-08

共1个答案

小编典典

@synthesize 将为您的属性生成 getter 和 setter 方法。@dynamic 只是告诉编译器 getter 和 setter
方法不是由类本身实现的,而是由其他地方实现的(如超类或将在运行时提供)。

@dynamic 的使用例如与NSManagedObject(CoreData) 的子类一起使用,或者当您想要为未定义为出口的超类定义的属性创建出口时。

@dynamic 也可用于委派实现访问器的责任。如果您自己在类中实现访问器,那么您通常不使用@dynamic。

超级班:

@property (nonatomic, retain) NSButton *someButton;
...
@synthesize someButton;

子类:

@property (nonatomic, retain) IBOutlet NSButton *someButton;
...
@dynamic someButton;
2022-03-08