优化delegate响应

正常我们使用delegate都是 使用系统方法 respondsToSelector:来判断是否能够响应代理方法 

但是 如果代理方法特别多的情况下 可能导致很多检查结果是多余的 因为方法执行结束后 响应的方法不会突然不响应 不响应的方法也不会突然响应 所以将结果缓存起来就能够优化性能

使用位段的方式

struct data{

unsigned int A :1,

unsigned int B :1,

unsigned int C :1,

}delegateFlag;

1代表占用几个二进制位

在 delegate的set方法里进行判断

delegateFlag.A = [delegate respondsToSelector:方法1];

delegateFlag.B = [delegate respondsToSelector:方法2];

delegateFlag.C = [delegate respondsToSelector:方法3];

使用的时候直接判断标识符就可以了

if(delegateFlag.A){

         [delegate 方法1];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容