他们两个明明是继承关系,为什么都可以定义delegate属性?这样不是重名了吗?这是怎么实现的?
他们虽然都定义了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方法。
这样就不会产生问题了。