2

単純なARCコードを非ARCに変換する必要があります。比較的簡単でしたが、インスタンス変数の割り当てself.var = xxxを見逃しましたが、代わりにvar=xxxと記述しました。

ARCバージョンでは問題は発生しませんでしたが、非ARCバージョンでは確かにクラッシュが発生しました。

それは、自己なしでARCでインスタンス変数を割り当てることが実際にOKであることを意味しますか?だから彼らは保持されますか?

ありがとう!

ps ARCでプログラミングする方法を学ぶのに最適な情報源は何ですか?明らかなエラーを回避します-これまでのところ、問題はまったく見つかりませんでしたが、何かを見逃した可能性があることに神経質になっています

4

2 に答える 2

1

それは、実際には自己なしでARCでインスタンス変数を割り当てても問題ないということですか。彼らは保持されますか?

はい、ちょっと。

id obj_;

これと同じです。

id __strong obj_;

obj_ には、割り当てられたオブジェクトへの強い参照があります。割り当てられたオブジェクトは、ivar の所有者オブジェクトが解放されるまで解放されません。

LLVM ドキュメントまたはまだ NDA 中の Apple の ARC リファレンスを参照してください。

于 2011-09-14T21:16:17.297 に答える