网上说的delegate根本看不懂 自己写一个科普
所谓的delegate就是一种消息通信方式,由于viewcontorller A想要完成一个事情,比如下载图片,但是A知道的东西不能满足要求,比如不知道下载地址,而这个东西只有viewcontroller B知道,这个时候就要用到代理delegate来进行消息传递。
我们在B中声明一个delegate,并指向A(在A中b.delegate = A)这样就可以将你需要的B中的消息传递给A。
注意由于delegate是继承自nsobject,所以在调用时最好利用 responsetoselect(好像这个函数)来判断你的代理是否有相应这个代理函数来防止app crash