現在、Objective-Cのメモリ管理とプロパティについて学習中です。私は最近、@property
と@synthesize
がどのようにObjective-Cで動作するかに関して、this postとanswers to my previous questionを読んでいます。これは物事を幾分明らかにしました。Objective-Cのローカル変数とメンバ変数
ローカル変数とメンバ変数をメモリ管理の点で区別するのがポイントのようですが、私はまだその件について完全にはっきりしていません。
私が持っている場合:
@interface FooClass : NSObject {
NSObject *bar_;
}
私はプロパティを作成する必要がありますなぜですか?私は、プロパティがgettersとセッターを作成することを理解しますが、何ですか? foo.bar_ = newObject;
を使用して設定できるインスタンス変数bar_
があります。どんな利点が私にbar
と呼ばれるプロパティを持っていると foo.bar = newObject
を使用して設定しますか?
好奇心を失ってivarを公開するにはどうすればよいですか? –
'@interface SomeClass:ParentClass { @private id _privateVar; @ public id _publicVar; } ' – Denis