美文网首页
面试题_ios(三)

面试题_ios(三)

作者: 行走在北方 | 来源:发表于2018-08-15 11:21 被阅读4次

initializeinit以及load方法的区别与使用以及什么时候调用

https://www.cnblogs.com/ithongjie/p/5779291.html

initialize不是init

initialize在这个类第一次被调用的时候比如[[class alloc]init]会调用一次initialize方法,不管创建多少次这个类,都只会调用一次这个方法,我们用它来初始化静态变量,而init方法是只要这个类被调用,就会调用这个init方法,这个类被调用几次,这个init方法就会被调用几次,当有一个类继承这个类,是这个类的子类的时候,当子类被调用的时候比如子类被[[class alloc]init]的时候,父类的initialize和init方法都会被调用一次,

init继承于NSObject这个根类,所有的子类可以不用重写这个实例方法函数,当然也可以在自己的类里重写init实例方法。

1 - (id) init

2 {

3 if ( self = [super init] )

4 {

5 // Class-specific initializations

6 }

7 return self;

8 }

首先得调用父类的init函数方法,然后在if的语句块里写一些自己特色的初始化操作(第5行)。

可以在你实例化的时候提供更多参数以便实现对对象的快速赋值。重写init可以让你创建的对象出来就是成品。而不重写的话,还需要你对该对象的属性进行赋值。

  • load 方法会在加载类的时候就被调用,也就是 ios 应用启动的时候,就会加载所有的类,就会调用每个类的 + load 方法。
  • 在没有对类做任何操作的情况下,+load 方法会被默认执行,并且是在 main 函数之前执行的。程序启动之前会调用

列举出iOS下所有的存储方式及其特点和所适合的场景

https://www.jianshu.com/p/0617b3dc8304
本文章为学习总结,如有侵权请留言

相关文章

网友评论

      本文标题:面试题_ios(三)

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