-1

この質問について検索しましたが、適切な答えが見つかりません: 私はjava長い間取り組んでいましたが、今は学びたいですObjective-C

シナリオは次のとおりです。私はObjective Cクラスを拡張するクラスを持っています。そのクラスには、tで作成されたタイプNSObjectの saveral フィールドとNSStringタイプのプロパティが含まれています。カスタムクラスのオブジェクトを作成した後、それを NSArray に入れましたCustomObject@property(nonatomic,retain) NSString or MyObjec[myArray addObject:myObject]

myArray を解放するかどうかを尋ねたいのですが、その配列内のオブジェクトとそのオブジェクト内のフィールドを解放する必要があり、一部のフィールドはCustomObject別のクラスでもあります。

4

2 に答える 2

2

NSArray の割り当てを解除すると、解放メッセージが配列内のすべてのオブジェクトに送信されます。オブジェクトへの唯一の参照が配列内にある場合、オブジェクトはその dealloc メソッドを呼び出します。これは、そのすべてのプロパティの解放を担当します。

于 2012-06-14T06:47:41.423 に答える
1

私はまだobjcを学んでおり、カスタムオブジェクトを作成したときに保持カウントが増加し、それを配列に追加すると保持カウントも増加すると思います。したがって、配列内のオブジェクトを解放すると、解放する必要がある保持カウントがまだあります。それは私の考えです。

于 2012-06-14T06:40:31.520 に答える