objective-c - @synthesize 与 @dynamic,有什么区别?

@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/

相关文章:

ios - 设置 UITextField 的最大字符长度

objective-c - 在 Objective-C 中创建一个抽象类

objective-c - 在 Objective-C 中,我如何测试对象类型?

ios - 如何浏览文本字段(下一步/完成按钮)

ios - 在 ARC 下,IBOutlets 应该强还是弱?

objective-c - 如何检查 NSDictionary 或 NSMutableDiction

ios - 如何以编程方式在 iPhone 上发送短信?

objective-c - 如何在 Xcode 4 中设置 NSZombieEnabled?

ios - UITextField 文本更改事件

ios - 如何以编程方式创建基本的 UIButton?