iOSでのメモリ管理を理解しようとしています。私はこのインターフェースを作成しました:
@interface Player : NSObject {
PlayerType pType;
PlayerWeapon pWeapon;
}
@property(nonatomic, readwrite, retain) pType;
@property(nonatomic, readwrite, retain) pWeapon;
@end
そしてこれは実装ファイルにあります:
@synthesize pType;
@synthesize pWeapon;
retain
pTypeとpWeaponは標準のC構造体ではないため、ヘッダーファイルではプロパティを使用します。私が理解していることから、それらがC構造体である場合は、assign
代わりに使用します。私が使用retain
したので、それはこのクラスがオブジェクトを保持することを意味しますか、それともどのクラスがそれをインスタンス化しますか?たとえば、別のクラスでこれを行う場合:
Player *player = [[Player alloc] init];
この新しいクラスを呼び出す[player release]
必要がありますか、それともオブジェクトは自動的に解放されますか?