または@property
を使用して を実装する場合の違いは何ですか?@dynamic
@synthesize
ベストアンサー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;