@interface DZActionView(){
NSString* _name;
}
@interface DZActionView()
@property(strong, nonatomic)NSString* name;
@end
違いは何ですか? 私は@propertyを使用するとわかります。 getter/setterメソッドと_nameプロパティを生成します。Objective-Cでプロパティを作成する2つの方法の違いは何ですか
@interface DZActionView(){
NSString* _name;
}
@interface DZActionView()
@property(strong, nonatomic)NSString* name;
@end
違いは何ですか? 私は@propertyを使用するとわかります。 getter/setterメソッドと_nameプロパティを生成します。Objective-Cでプロパティを作成する2つの方法の違いは何ですか
あなたはこのために意味場合:
@interface DZActionView(){
NSString* _name;
}
をあなたの第二の方法であるためにあなたの最初のプロパティを作成する方法、および
@interface DZActionView()
@property(strong, nonatomic)NSString* name;
@end
であることを、あなたはどのようにObjective-Cの誤解していますプロパティを使用します。
最初のメソッドはプロパティではなく、インスタンス変数のみです。他のオブジェクトからアクセスすることはできません。
第2の方法では、実際にプロパティを作成します。 Objective-Cの以前のバージョンでは、プロパティのバッキングインスタンス変数を作成する必要がありました。これは、あなたが含まれている変数_name
のためのものです。これは、明示的に追加する必要がある場合を除き、主に自動的に自動的に行われます。あなたは(これらに類似)、独自のgetter
とsetter
方法が含まれている場合
:
- (NSString*)name {
return _name;
}
- (void)setName:(NSString*)name {
_name = name
}
を次にこれらは明示的に言及した_name
インスタンス変数を参照している、とバッキング変数としてそれを使用しています。
最初はプロパティではなく、単なるインスタンス変数です。 2番目はプロパティです。 – Paulw11