美文网首页
load 、initialize

load 、initialize

作者: 某个胖子 | 来源:发表于2015-12-30 15:59 被阅读353次

本次记录源自此篇博文,对文中作者提到的知识编码学习,只是NSLog不同。本人采用NSLog(@"(常量)");

简介

在iOS中,load、initialize两个方法是比较特殊的存在。说它们特殊,是因为一般在程序中,不会使用这两个方法。如果想要做一些比较hack的事情(例如:method swizzing) 就需要用到它们了。

执行时机

load 在class、class category等 首次import的时候会默认执行。如果定义了class, 但在项目中并没有import ,那么load不会被执行。
initialize在首次对class 发送消息时执行。即使import class, 如果没有对class 发送消息,initialize不会被执行。

注意

  • 重写load、initialize 时,不需要调用super的load、initialize。
  • import class、class category、class subClass 、class supClass时,每个类的load都会被执行。
  • 手动调用 load的时候,如果有category, 会调用category的load,此处相当于 send message。
  • initialize 会默认调用super的initialize,而load不会。
  • 在category中重写initialize,那对class 发送消息,执行category的initialize,不再执行class initialize。

相关文章

网友评论

      本文标题:load 、initialize

      本文链接:https://www.haomeiwen.com/subject/bqpihttx.html