请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

3回答

提问者 white123126 2019-07-02 19:00:18

这里举的例子,+load方法会引起类在项目启动时就加载吗?

0 回复 有任何疑惑可以回复我~
  • 逆风 #1
    是的呢
    回复 有任何疑惑可以回复我~ 2019-07-04 22:55:39
提问者 white123126 2019-07-01 21:37:49

好的,等下试试,谢谢

0 回复 有任何疑惑可以回复我~
逆风 2019-07-01 21:03:02

当程序启动时,并不需要把所有类都加载(实现)。和平常方法中使用懒加载一样的意思。只有用到时才实现。

记得在调用方法查找IMP时,会调用到lookUpImpOrForward方法,在这里面会判断它是否已实现,没有则实现它。

if (!cls->isRealized()) {        

     realizeClass(cls);

}

调用_read_images时有很多类是不必要马上实现的。

举个例子,如果实现了某个类的+load方法,那么它就不属于懒加载的类了。_read_images时必须realizeClass它。


你可以在_read_images中打印哪些类是不懒加载的类,然后再得到哪些类是懒加载的类。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信