iOSのメモリ管理について理解しようとしています。パラメータ・タイプとpWeaponは、標準Cの構造体ではないので、私はretain
プロパティを使用して、ヘッダファイルでメモリ管理の保持/割り当て
@synthesize pType;
@synthesize pWeapon;
:実装ファイル内
@interface Player : NSObject {
PlayerType pType;
PlayerWeapon pWeapon;
}
@property(nonatomic, readwrite, retain) pType;
@property(nonatomic, readwrite, retain) pWeapon;
@end
これ:私はこのインタフェースを作成しました。私が理解しているところでは、C構造体の場合は、代わりにassign
を使用します。 retain
を使用しているので、このクラスはオブジェクトを保持しているか、クラスをインスタンス化しているクラスを保持していますか?例えば、私は別のクラスでこれを行う場合:
Player *player = [[Player alloc] init];
この新しいクラスは[player release]
またはオブジェクトが自動的に解放されますを呼び出すことがありますか?
ありがとうございます。私がヘッダファイルに 'retain'や' assign'を入れていないと、それは違いがありますか? – XSL
は、プロパティのドット構文を使用する場合にのみ使用します。すなわち自己再生装置。あなたのヘッダーファイルの保持は、それぞれのivarのセッターとゲッターメソッドを作成するようにコンパイラーに指示します。 – timthetoolman