在使用Block的时候经常会用到weakself来防止循环引用如:__weak typeof (self) type = self;
//下面是两个weakself和strongself的两个实用宏定义:
#define WeakSelf(type) __weak typeof(type) weak##type = type;
#define StrongSelf(type) __strong typeof(type) strong##type = weak##type;
调用:Weakself(self);然后使用weakself;StrongSelf(self) 使用strongself (名字可以根据##任意改)