@protocal

  • 对代理的理解就是代理对象内存的传递和操作,我们在委托类设置代理对象后,实际上只是用一个id类型的指针将代理对象进行了一个弱引用(strong容易发生循环引用,weak比assin更安全,指明该对象并不负责保持delegate这个对象,delegate这个对象的销毁由外部控制。当delegate指向的对象销毁后,delegate = nil。尽管苹果建议我们使用assign,因为weak比较浪费性能,希望我们自己处理这些问题)。在委托方.h文件中
@property(nonatomic,weak) id delegate;
  • 委托方让代理方执行操作,实际上是在委托类中向这个id类型指针指向的对象发送消息,而这个id类型指针指向的对象,就是代理对象。设置委托代理就是代理属性指针指向代理对象
self.delegate=protocalobject
  • 注意点:代理方一定要服从协议
@interface ProClass:NSObject

你可能感兴趣的:(@protocal)