用 @dynamic
或 @synthesize
实现 @property
有什么区别?
最佳答案
@synthesize 将为您的属性生成 getter 和 setter 方法。 @dynamic 只是告诉编译器 getter 和 setter 方法不是由类本身实现的,而是由其他地方实现的(比如父类(super class)或将在运行时提供)。
@dynamic 的用途是例如使用 NSManagedObject
(CoreData) 的子类,或者当您想要为未定义为 socket 的父类(super class)定义的属性创建 socket 时。
@dynamic 也可用于委派实现访问器的责任。如果您自己在类中实现访问器,那么您通常不使用@dynamic。
父类(super class):
@property (nonatomic, retain) NSButton *someButton;
...
@synthesize someButton;
子类:
@property (nonatomic, retain) IBOutlet NSButton *someButton;
...
@dynamic someButton;
https://stackoverflow.com/questions/1160498/