文字列を保持型のクラス B の文字列プロパティに割り当てることにより、A から B への文字列など、2 つのクラス間でいくつかのオブジェクトを渡します。クラス B の dealloc メソッドで、この文字列プロパティを解放する必要がありますか?
3 に答える
2
プロパティ タイプが保持の場合、保持カウントが 1 増加し、オブジェクトを解放するには、保持カウントを 0 に減らす必要があります。したがって、解放しないとメモリ リークが発生します。プロパティを保持する目的である感染は、プロパティを実装するそのクラスのインスタンスに所有権を与えます。
于 2013-02-21T08:55:02.953 に答える
1
あなたが話しているようdealloc
に、私はあなたの問題を非ARCとしてとらえています。
文字列をクラスBの文字列プロパティに割り当てます。これはretain型です。この文字列プロパティをクラスBで解放する必要がありますか?
いいえ。
保持、コピー、割り当てを行う場合にのみリリースする必要があります。
また、NSStringは保持せずに割り当てる必要があります。
于 2013-02-21T08:46:27.317 に答える
0
はい、保持されているオブジェクトを解放する必要があります。デアロック方式の場合:
- (void)dealloc
{
if (_yourString)
{
[_yourString release];
}
...
[super dealloc];
}
于 2013-02-21T08:50:20.383 に答える