Delegate详解

1.代理用weak和assign有什么区别

assign:当delegate指向的对象销毁了,指针赋值不对引用计数操作,delegate中依然会保存之前对象的地址,delegate成 为了一个野指针。

weak:当delegate指向的对象销毁后,delegate = nil

2.正确声明方式

@protocolProductListCellDelegate

-(void)clickLike;

@end

@property(weak,nonatomic)    id  delegate;


3.NSObject * 和id 的区别

NSObject *就是NSObject类型的指针。

id是指针,它要求它指向的类型要实现NSObject protocol

你可能感兴趣的:(Delegate详解)