1

もし私がこれをしたら

Object * myObject = [[Object alloc]init];
[myObject release];

次の行にオブジェクトを割り当てることについて何か問題がありますか

myObject = [[Object alloc]init];

また?

4

4 に答える 4

5

これは安全です。

その理由は、それはオブジェクトでmyObjectなく、オブジェクトへの参照 (または正確にしたい場合はポインター) だからです。つまり、2 つの完全に独立したオブジェクトがあることを意味しますが、最初のオブジェクトへの参照を忘れています。

于 2011-11-07T18:07:53.230 に答える
4

全く問題無い。 [myobject release];が指すオブジェクトを解放しますmyObject

後で、別のオブジェクトmyobject = [[Object alloc] init] を指摘します。myobject

于 2011-11-07T18:08:30.700 に答える
2

それは何も悪いことではありません。これが、最初のオブジェクトをリークしないようにする方法です。

ただし、リリースされたオブジェクトを技術的に再度割り当てることはありません。古いポインターを再び使用しているだけです。

Object * myObject = [[Object alloc]init];
myObject = [[Object alloc]init];

作成した最初のオブジェクトがリークします。

于 2011-11-07T18:07:53.497 に答える
1

はい、もちろん。この手法は、一度宣言されたオブジェクトを新しいオブジェクトとして再割り当てすることで再利用できるローカルメソッド変数で特に役立ちます..!!

于 2011-11-07T18:07:35.503 に答える