私がBasicEngine
クラスを持っているとしましょう:
@interface BasicEngine : GfxEngine{
NSMutableDictionary *keyNodes;
AbstractVirtualJoystick *input0;
}
関連する実装は次のとおりです。
@implementation BasicEngine
- (id)init {
if ( (self = [super init]) ) {
keyNodes = [NSMutableDictionary dictionary];
}
return self;
}
私の理解では、呼び出し[ dictionary]
は自動解放されたオブジェクトを返します。BasicEngine
ただし、このディクショナリは、インスタンスが使用可能である限りメモリに保持する必要があります。
keyNodes
すぐに物になると、何かが足りないことに気づきnil
ます。メソッドで使用[keyNodes retain]
するinit
ことは役に立ちますが、クラスメンバーを保持する必要がある理由がわかりません。
私がこれを理解するのを手伝ってください:-)ありがとう。