Objective-C学習ノート-ARC

660 ワード

1.Javaと同様に、Objective-Cにもオブジェクトを自動的に回収するメカニズムARCがあり、1つのオブジェクトにポインタがない場合、オブジェクトは解放される
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に設定されます.