他们两个明明是继承关系,为什么都可以定义delegate属性?这样不是重名了吗?这是怎么实现的?
1条回答 默认 最新
- Hg浩 2015-11-28 10:21关注
他们虽然都定义了delegate属性,但UIScrollView的delegate遵守了UIScrollViewDelegate协议,而UICollectionView的delegate遵守了
UICollectionViewDelegate协议,并且UICollectionViewDelegate继承自UIScrollViewDelegate,
就是UICollectionView的delegate包含了UIScrollView的delegate。这就好比父类是Car,子类是Truck,他们都有一个共同的属性driver,但是Car的driver
只需要有Car的驾照(就好比遵守协议),而Truck的driver需要有Truck的驾照,而driver拥有Truck驾照必然拥有Car的驾照。这里UICollectionView的delegate属性应该是动态加载的,否则会执行UIScrollView的delegate的set和get方法。
这样就不会产生问题了。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 Coze智能助手搭建过程中的问题请教
- ¥15 12864只亮屏 不显示汉字
- ¥20 三极管1000倍放大电路
- ¥15 vscode报错如何解决
- ¥15 前端vue CryptoJS Aes CBC加密后端java解密
- ¥15 python随机森林对两个excel表格读取,shap报错
- ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
- ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
- ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
- ¥15 VFP如何使用阿里TTS实现文字转语音?