面试题_ios(三)

2018-08-15  本文已影响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可以让你创建的对象出来就是成品。而不重写的话,还需要你对该对象的属性进行赋值。

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

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

上一篇 下一篇

猜你喜欢

热点阅读