Objective-C学習ノート-ARC
660 ワード
1.Javaと同様に、Objective-Cにもオブジェクトを自動的に回収するメカニズムARCがあり、1つのオブジェクトにポインタがない場合、オブジェクトは解放される
2.デフォルトのオブジェクトポインタはすべて強参照で、現在2つのオブジェクトがあり、AとBが互いに参照していると仮定すると、両方のオブジェクトはARCメカニズムで解放されません.
3.弱引用によって上記の問題を解決することができ、以下のコードの中で、現在A、Bの2つのオブジェクトがある場合、コードの実行が完了すると、Aの中のBオブジェクトは弱引用であるため、Bは自動的に解放することができ、Bが解放された後、Aオブジェクトも他のオブジェクトの引用がなく、解放された
4.弱い参照オブジェクトが解放されると、オブジェクトは自動的にnilに設定されます.
2.デフォルトのオブジェクトポインタはすべて強参照で、現在2つのオブジェクトがあり、AとBが互いに参照していると仮定すると、両方のオブジェクトはARCメカニズムで解放されません.
3.弱引用によって上記の問題を解決することができ、以下のコードの中で、現在A、Bの2つのオブジェクトがある場合、コードの実行が完了すると、Aの中のBオブジェクトは弱引用であるため、Bは自動的に解放することができ、Bが解放された後、Aオブジェクトも他のオブジェクトの引用がなく、解放された
@interface classA:NSObject
@porperty (nonatomic,weak) classB * objB;
__weak classB * objB;
-(void)test;
@end
@interface classB:NSObject
@porperty (nonatomic,strong) classA * objA;
-(void)test;
@end
ClassA * A=[...]
ClassB * B=[...]
A.objB=B;
B.objA=A;
4.弱い参照オブジェクトが解放されると、オブジェクトは自動的にnilに設定されます.