3. iOS面试题

2016-05-09  本文已影响67人  苏宇lovecc
  1. retain 和 copy 的区别 -- iOS学习-属性@property的修饰词
  1. 深拷贝和浅拷贝:
  1. 类目和继承的异同
    在Objective-C中,给一个类扩展一个其它方法,有两种实现方式:类别和继承。

  2. 继承Inherit
    这个是面向对象语言都有的一个特性,子类会继承父类的方法和属性。
    对于以下情况,无法使用类别,必须使用继承。
    1)新扩展的方法与原方法同名,但是还需要使用父类的实现。因为使用类别,会覆盖原类的实现,无法访问到原来的方法。
    2)扩展类的属性,这个类别无法做到。

  3. 类别category
    这是Objective-C语言的一个特性,可以在不改变类名和原来类的实现的前提下,为已存在的类添加新的方法,但是不能添加实例变量。
    以下两种方式最好使用类别。
    1)针对系统提供的一些类,例如:NSString,NSArray,NSNumber等类,系统本身不提倡使用继承去扩展方法,因为这些类内
    部实现对继承有所限制,所以最后使用类别来进行方法扩展。
    2)类别支持开发人员针对自己构建的类,把相关的方法分组到多个单独的文件中,对于大型而复杂的类,这有助于提高可维护性,并简化单个源文件的管理。

  4. 懒加载
    1.懒加载基本
    懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。
    所谓懒加载,写的是其get方法.注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化。
    2.使用懒加载的好处:
    (1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强
    (2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合
    3.代码示例,查看链接。iOS开发UI篇-懒加载

  5. _window和self.window的区别

  1. frame与bounds的区别

    1>. frame是该View在父View坐标系统中的位置和大小;

    2>. bounds是该View在本地坐标系统中的位置和大小;X值永远等于0,Y值永远等于0。

  2. UIVIew与CALayer(有一个文档,在附件中保存。)

  3. UIView继承自UIResponse,再继承NSObject,所以可以响应事件;CALayer直接继承自NSObject,不能响应方法。

  4. UIView侧重于对显示内容的管理,CALayer侧重于对显示内容的绘制。

  5. UIButton的父类是?UIView的父类是?

UIButton --> UIControl --> UIView --> UIResponder --> NSObject

9.Core Data

10.交叉引用与循环引用

11.多线程?

  1. GCD的死锁用同步的方式给主队列添加任务。

13.常用的网络请求方式。

上一篇下一篇

猜你喜欢

热点阅读