课程咨询 : 010-57154533

主页 > 企业招聘 > iOS笔试题 > 【鸿运彩票网iOS题库】iOS经典面试题(1)
  • 【鸿运彩票网iOS题库】iOS经典面试题(1)

    发布:鸿运彩票网      来源:鸿运彩票网      时间:2016-06-08 16:45

  •  1.#import和#include的区别 @class?

      @class一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文 件中还是需要使用#import

      而#import比起#include的好处就是不会引起交叉编译

      2. readwrite,readonly,assign,retain,copy,nonatomic 属性的作用

      @property是 一个属性访问声明,扩号内支持以下几个属性:

      1,getter=getName,setter=setName,设置setter与 getter的方法名

      2,readwrite,readonly,设置可供访问级别

      2,assign,setter方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题

      3,retain,setter方法对参数进行release旧值再retain新值,所有 实现都是这个顺序(CC上有相关资料)

      4,copy,setter方法进行Copy操作,与retain处理流程一样,先旧值release,再 Copy出新的对象,retainCount为1。这是为了减少对上下文的依赖而引入的机制。

      5,nonatomic,非原子性访问,不加同步, 多线程并发访问会提高性能。注意,如果不加此属性,则默认是两个访问方法都为原子型事务访问。锁被加到所属对象实例级(我是这么理解的…)。

      3.在一个对象的方法里面:self.name= “object”;和 name =”object” 有什么不同吗?

      答:

      self.name =”object”:会调用对象的setName()方法;

      name = “object”:会直接把object赋值给当前对象的name属性。

      4.请简述self.name= nil的机制,以及与[namerelease]的区别?

      self.name =nil; //使用nil参数调用setName:方法

      [name release]生成的访问器将自动释放以前的name对象

      5.请简要说明viewDidLoad和viewDidUnload何时调用

      答:

      viewDidLoad在view从nib文件初始化时调用,

      loadView在controller的view为nil时调用。

      此方法在编程实现view时调用,view控制器默认会注册memory warning notification,

      当view controller的任何view没有用的时候,

      viewDidUnload会被调用,在这里实现将retain的view release,如果是retain的IBOutlet view 属性则不要在这里release,IBOutlet会负责release 。


上一篇:著名互联网公司的奇葩面试题

下一篇:【鸿运彩票网iOS题库】iOS经典面试题(2)

最新开班日期

开班时间 2017/02/20
距离开班时间还剩

1 2 3
©2016 鸿运彩票网 版权所有 京ICP备15049804-3号