0

私がこれを行う場合:

NSDate *dateStart;
[dateStart alloc];

// Initialise with a date somewhere here..

..

// Modify the start date.
dateStart = [chosenDate copy];

dateStart ポインターを割り当てる前に [dateStart release] を実行する必要がありますか?

私は C/C++ のバックグラウンドを持っており、ObjectiveC/iOS ガベージ コレクションの動作全体を理解していません (実際に存在する場合)。私の C バックグラウンドは、dateStart が指している最初の NSDate オブジェクトを解放する必要があることを教えてくれます。それは正しいでしょうか?

4

1 に答える 1

2

はい、この行の前に解放する前に割り当てたので

//Release it before reassign
[dateStart release];
dateStart = [chosenDate copy];

また、割り当てと初期化を同じ行で行うことをお勧めします。それらを複数の行に分割しないでください。

したがって、この

NSDate *dateStart;
[dateStart alloc];

に変わります

NSDate *dateStart = [[dateStart alloc] init....];
于 2012-06-29T23:46:09.060 に答える