Я пытаюсь понять управление памятью на 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]
или объект будет автоматически освобожден?