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的性能。

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

  • 相关阅读:
    人生转折点:弃文从理
    人生第一站:大三暑假实习僧
    监听器启动顺序和java常见注解
    java常识和好玩的注释
    182. Duplicate Emails (Easy)
    181. Employees Earning More Than Their Managers (Easy)
    180. Consecutive Numbers (Medium)
    178. Rank Scores (Medium)
    177. Nth Highest Salary (Medium)
    176. Second Highest Salary(Easy)
  • 原文地址:https://www.cnblogs.com/Horkly/p/5479571.html
Copyright © 2011-2022 走看看