我正在尝试了解 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]
还是会自动释放对象?