說我有一個BasicEngine
類:Autorelease:必須[保留]成員變量?
@interface BasicEngine : GfxEngine{
NSMutableDictionary *keyNodes;
AbstractVirtualJoystick *input0;
}
的相關實施去如下:
@implementation BasicEngine
- (id)init {
if ((self = [super init])) {
keyNodes = [NSMutableDictionary dictionary];
}
return self;
}
我的理解是,調用[ dictionary]
返回一個自動釋放的對象。但是,只要BasicEngine
實例可用,該字典應保存在內存中。
我意識到我錯過了一些東西,因爲keyNodes
很快就變成了nil
對象。 在init
方法中使用[keyNodes retain]
只是幫助,但我不明白爲什麼需要保留一個類成員。
請幫我理解這一點:-) 謝謝。
啊感謝,簡潔明瞭的解釋,肯定添加這對我的小抄;-)感謝Kevboh! – Jem
沒問題。如果您有任何問題,請告訴我,我很樂意回答。 Apple在內存管理方面也有一些很好的文檔[這裏](https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html)。 – kevboh