1.代理用weak和assign有什么區(qū)別
assign:當(dāng)delegate指向的對象銷毀了,指針賦值不對引用計數(shù)操作,delegate中依然會保存之前對象的地址,delegate成 為了一個野指針。
weak:當(dāng)delegate指向的對象銷毀后,delegate = nil
2.正確聲明方式
@protocolProductListCellDelegate <NSObject>
-(void)clickLike;
@end
@property(weak,nonatomic)? ? id<ProductListCellDelegate>? delegate;
3.NSObject * 和id<NSObject> 的區(qū)別
NSObject *就是NSObject類型的指針。
id<NSObject>是指針,它要求它指向的類型要實現(xiàn)NSObject protocol