2016-10-05 9 views
3

Objective-cで作業しているときに、オブジェクトの割り当てを解除または解放したいときは、例:NSMutableArray * arr;スワイプ言語がメモリを解放または解放するためにnilを提供できない理由

[arr removeAllObjects]; 
arr = nil; 
arr = [[NSMutableArray alloc] init]; 

これを実行して、そのオブジェクトの割り当てを解除します。

arr.removeAllObjects() 
arr = NSMutableArray() 

私はどのようにこのようオブジェクトの割り当て解除やメモリを解放を取得していない午前:

は、なぜ我々だけこれを行うことができ、迅速な言語

で、このように行うための方法はありません。

+0

あなたのご意見ありがとうございました。私はいくつかのリンクやリファレンスを提供してください。オプションで作業して問題を解決することができます。 –

+0

Objective-Cコードの 'arr = nil;'行は必要ありません投稿されました。そしてそれをSwiftでもやる必要はありません。 – rmaddy

答えて

2

まず、変数をオプションとして宣言すると、nilに設定することができます。

ただし、ARCを使用すると、オブジェクトを自分でリリースする必要はありません(これがARCの目的です)。変数をリセットすると、システムがメモリを処理します。

+0

正しい用語は「処理する」ではなく「処理する」であり、ARCは完璧ではありません。 –

+1

@AlessandroOrnano手動で 'unowned'にしない限り、ARCは変数をリセットするときにARCがメモリを扱わない(' -release'を呼び出しません)のですか? – kennytm

+0

@AlessandroOrnano私はあなたに同意できませんが、そのような単純なケースではうまくいくと仮定しましょう。さもなければそれを信じることはできません。 –

関連する問題