initWithFrame
,不要放在 init
。不要两个方法都放,因为你放 initWithFrame
就足够了,即使你实际只调用 init
来初始化。init
内部会调用父类的 initWithFrame:
方法,只不过传入的 frame 的值为0。然后,父类的 initWithFrame:
方法发现当前的调用对象是子类对象,所以就调用了子类的 initWithFrame
方法了。这是一个多态的应用。init
方法最终会调用自己的 initWithFrame:
方法,所以不要两个方法都去实现,两个都去实现就重复执行了。一般可能也看不出来影响,但在要添加KVO观察者逻辑的时候就非常致命。initWithFrame:
即可,在这里面放你自己的初始化逻辑。init
来初始化,也可以通过 initWithFrame:
来初始化。init
那一部分完全没必要。扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有