0

weak私は ARC を使用し、iOS 4.3 をサポートする前にアプリを構築しましたが、ツリーにはノードへの強い参照があり、ノードには弱い参照であるはずのツリーへの参照があるため、を使い始めるとすぐに:

@property (weak, nonatomic) NSTree *treeThatIBelong;

NSTree私が自分のコードで作成したクラスです)。

この場合、iOS 4.3 のターゲットは使用できません。コンパイラ エラーは「weak... is not supported in the deployment target」であり、iOS 5.0 以上である場合にのみエラーが解消されます。では、weakiOS 4.3 に展開できないのでしょうか。iOS 4.3 をサポートし、引き続き ARC を使用したい場合の回避策はありますか?

4

1 に答える 1

1

weakiOS 4.3 以前に展開する必要がある場合は、回避策として使用しないでください。weakiOS 5.0 まで存在しないランタイム サポートが必要です。

iOS 4.3 以前では を使用できますがassign、これはもちろんゼロ化の弱い参照ではないため、参照されたオブジェクトの割り当てが解除されると単にガベージになります。これはまさに、ARC の代わりに MRR を使用する場合に対処しなければならないことです。

于 2012-09-06T07:26:57.673 に答える