3

Book私は、ARCがFoundationからObjectのみをリリースしているという文章を見つけました。これは本当ですか?だから私が持っている場合:ARCはすべてのオブジェクトで機能しますか?

MySimpleClass *objectFromMySimpleClass = [MySimpleClass alloc] init]; 

私はobjectFromMySimpleClassをリリースする必要がありますか?どうやってやるの?私が試しているとき

[objectFromMySimpleClass release]; 

Xcodeのヒントで非アクティブな「リリース」が表示され、コンパイラはARCのためにこれを実行できないと言う。どうしたの?

他にもあります。私はNSCopingプロトコルを使用するときに私はコピーを使用するときにオブジェクトをリリースする必要がありますか?

+1

NSObjectクラスを意味しませんか?もしあなたのクラスがそのクラスから派生していれば、すべてがうまくいきます。 – trojanfoe

+0

私はちょうど本の著者に従っています;)だから私はNSObjectから継承するとき、これは完全にクールです。これは意味をなさない、私はそれを考えなかった。おかげで – Kuba

+0

あなたは正しい本にリンクしていますか?それはARCが発表される前に書かれたものなので、その中にARCの言及はないと私は疑う。 –

答えて

5

MySimpleClassNSObjectを継承しているため、これはFoundation Objectであるため、ARCで管理することができます。

+0

クラスがretain/releaseをオーバーライドする場合を除きます。そのようなクラス(執筆時点のNSWindowなど)では、ゼロ以外の弱い変数を使用する必要があります。 –

1

はい、ARCすべてのオブジェクトに対して作業し、実行時にリリースを使用して保持できません。

関連する問題