3

NSObjectからサブクラス化された非常に基本的なデータクラスがあります。いくつかの文字列を宣言し、それらにプロパティ(nonatomic、copy)があることを確認して、それらを合成します。私が実装した唯一のメソッドは、文字列を解放するdealloc()でした。これだけでメモリの問題が発生する可能性はありますか?他に実装する必要のあるメソッドはありますか?

4

4 に答える 4

9

NSObject のサブクラス化は、常に行っていることです。メモリ管理ルールに従うだけで、準備完了です。

于 2010-03-24T22:09:14.163 に答える
4

何かを設定したい場合は、カスタム init を実装できます。

-(id)init {
    if (!(self = [super init]))
          return nil;

    // Set things up you might need setting up.
    return self;
}

ただし、それは、クラスで何かを呼び出す前に準備しておきたいことがある場合に限られます。

そうでなければ、deallocメソッドを持つだけで問題ありません。

于 2010-03-24T22:10:56.753 に答える
2

問題はありません。サブクラス化NSObjectは完全に受け入れられており、99% のケースで必要です。

サブクラスNSObject化することにより、サブクラスは、Cocoa/Cocoa Touch のオブジェクトに期待されるすべての必要な動作を受け取ります。retainこれには、releaseなどを使用する参照カウントメモリ管理システムなどが含まれます。

于 2010-03-24T22:10:57.300 に答える
1

あなたがしていることは問題ありません。[super dealloc]サブクラスのメソッドの最後で呼び出してください-dealloc

于 2010-03-24T23:22:43.363 に答える