zoukankan      html  css  js  c++  java
  • runtime相关问题

    +(void)load; +(void)initialize;有什么用处?

    在Objective-C中,runtime会自动调用每个类的两个方法。+load会在类初始加载时调用,+initialize会在第一次调用类的类方法或实例方法之前被调用。这两个方法是可选的,且只有在实现了它们时才会被调用。
    共同点:两个方法都只会被调用一次。

    调用时间

    • initialize()方法的调用是在一个类或者其子类的在发送第一个消息之前,
    • +(void)load 这个方法调用较早,当类加载的时候该方法就会被调用。
    • 父类(Superclass)的方法优先于子类(Subclass)的方法,类中的方法优先于类别(Category)中的方法。

    为什么其他语言里叫函数调用, objective c里则是给对象发消息(或者谈下对runtime的理解)

    消息转发机制 消息转发机制


    什么是method swizzling?

    是一种动态修改方法的实现,从而达到修改类行为的目的,其他知道的还有分类(Category)也能达到这个目的。

    Objective-C的hook方案(一): Method Swizzling

  • 相关阅读:
    第五次团队作业
    第三次个人作业
    第一次编程作业
    自我介绍
    个人总结
    第三次个人作业
    第一次结对作业
    第二次作业
    第一次博客作业
    Alpha总结
  • 原文地址:https://www.cnblogs.com/sunyanyan/p/5300876.html
Copyright © 2011-2022 走看看