1.代理用weak和assign有什么区别
assign:当delegate指向的对象销毁了,指针赋值不对引用计数操作,delegate中依然会保存之前对象的地址,delegate成 为了一个野指针。
weak:当delegate指向的对象销毁后,delegate = nil
2.正确声明方式
@protocolProductListCellDelegate <NSObject>
-(void)clickLike;
@end
@property(weak,nonatomic) id<ProductListCellDelegate> delegate;
3.NSObject * 和id<NSObject> 的区别
NSObject *就是NSObject类型的指针。
id<NSObject>是指针,它要求它指向的类型要实现NSObject protocol