zoukankan      html  css  js  c++  java
  • iOS开发-OC篇 load方法 和 initialize方法比较

    Load方法 和 initialize方法的比较   

        在OC语言中,我们相比之下对于load和initialize方法的使用比较少,所以会不是很清楚的了解二者的用途和区别,所以整理了一下,和大家进行分享,有所得不对的地方,希望能够指出来,多谢! 

    1、load方法特点: 

    1> 当类被引用进程序的时候会执行这个函数

    2> 一个类的load方法不用写明[super load],父类就会收到调用,并且在子类之前。

    3> Category的load也会收到调用,但顺序上在主类的load调用之后。

     2、initialize方法特点:

     1> initialize的自然调用是在第一次主动使用当前类的时候

    2> 和load不同,即使子类不实现initialize方法,会把父类的实现继承过来调用一遍。注意的是在此之前,父类的方法已经被执行过一次了,同样不需要super调用。

    3、load和initialize有很多共同特点,下面简单列一下

    1> 在不考虑开发者主动使用的情况下,系统最多会调用一次

    2> 如果父类和子类都被调用,父类的调用一定在子类之前

    3> 都是为了应用运行提前创建合适的运行环境

    4> 在使用时都不要过重地依赖于这两个方法,除非真正必要

         由于initialize的这些特点,使得其应用比load要略微广泛一些。可用来做一些初始化工作,或者单例模式的一种实现方案。这个单例方法会在后面给大家提到。

    总结一下:就是load 方法会在程序加载的时候就会调用里面的内容,(不进行手动调用的话)整个程序只会调用一次,而initialize(比较难背的英文单词)方法只有在程序使用到包含它的类的时候,才会调用,也只是一次。所以我们在开发的过程中,可以利用他的整个特性,在里面写一些方法,这样做会使得App的运行速度加快。比如,在开发中我们使用数据库操作的时候,会缓存大量的数据,当用户刚开始打开App的时候,如果进行处理,那么就会产生开始使用的时候,出现卡顿几秒钟,这是在加载数据,但是这些数据我们开启App不能全部用到,因此我们将数据库的相关操作,写在initialize中,这样当用到的时候才进行数据的缓存,会提升整个App的性能。

            如果那里写的不对,请大家给我留言,本人十分喜欢和别人探讨技术,希望能共同进步。

  • 相关阅读:
    favicon.ico在线制作,在线Favicon.ico制作转换工具
    素材之家,中国免费素材下载网站!下免费素材就到素材之家!
    visual assit 2010 2008均可用
    SQL server2008卸载出现重启怎么解决
    ping测试网络
    inndy_rop
    BJDCTF 2nd web
    [BJDCTF 2nd]one_gadget
    bjdctf_2020_babystack2
    堆溢出之unlink
  • 原文地址:https://www.cnblogs.com/Horkly/p/5479571.html
Copyright © 2011-2022 走看看