我想了解iOS上的內存管理。我創造了這個接口:保留/分配內存管理
@interface Player : NSObject {
PlayerType pType;
PlayerWeapon pWeapon;
}
@property(nonatomic, readwrite, retain) pType;
@property(nonatomic, readwrite, retain) pWeapon;
@end
,這在實現文件:
@synthesize pType;
@synthesize pWeapon;
在頭文件中,我使用retain
屬性,因爲P-型和pWeapon不是標準C的結構。據我所知,如果他們是C結構,我會用assign
來代替。由於我使用了retain
,這是否意味着此類保留了該對象或哪個類實例化了它?例如,如果我這樣做的另一個類:
Player *player = [[Player alloc] init];
這個新的類必須調用[player release]
或將對象自動被釋放?
感謝您的解釋。如果我沒有在我的頭文件中加入'retain'或'assign',那會有什麼不同?只有在使用屬性點語法時才使用 – XSL
。即self.player。頭文件中的保留是告訴編譯器爲各個ivar創建一個setter和getter方法。 – timthetoolman