5

つまり、私がこれを行った場合、オブジェクトはすぐに解放され、プールによって解放される必要はありませんか?

[[NSArray arrayWithCapacity:100] release];

これに関するドキュメントで明確な説明が見つかりません。

4

3 に答える 3

7

オブジェクトが通常自動解放されるとクラッシュする可能性があります。autoreleaseは「遅延リリース」を意味するため、すぐにリリースされます。オブジェクトは後で手動で解放すると存在しないため、ランタイムが-releaseメッセージを割り当て解除されたオブジェクトに送信するためにクラッシュする可能性があります。

編集:-retain自動解放されたオブジェクトの場合、-releaseそれらを使用する必要があることに注意してください。所有権を取得しています。

于 2010-05-04T23:57:25.577 に答える
1

これはばかげたことであり、自分が所有していないものをリリースすべきではないことに気づきました。

于 2010-05-04T23:56:19.257 に答える
0

オブジェクトを自動解放プールに入れたくない場合は、手動allocinitWithCapabity. releaseそれを行うと、ある時点で手動で行う必要があります。

于 2010-05-05T00:07:58.837 に答える