これの違いは何ですか?
@property (nonatomic, weak) id <SubClassDelegate> delegate;
この:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
デリゲートのプロパティを使用したいと思います。
回答:
唯一の違いweak
とは、assign
オブジェクトならばということであるweak
プロパティポイントの割り当てが解除されたために、その後の値weak
のポインタに設定されnil
、あなたがゴミにアクセスする危険を冒すことはないように、。を使用した場合assign
、それは起こりません。そのため、オブジェクトがあなたの下から割り当て解除されてアクセスしようとすると、ガベージにアクセスします。
Objective-Cオブジェクトの場合、を使用できる環境にいる場合はweak
、それを使用する必要があります。
UITableView
持っassign
ています:@property (nonatomic, assign) id <UITableViewDelegate> delegate;