常见的IOS面试题整理(附答案)待更新

常见的IOS面试题,有时间就整理一下,既可以巩固自己的基础知识,又可以为给我IOS猿媛们提供一下参考。(如有不对的地方,望请大家指出)


欢迎大家来和我一起交流技术:QQ970941938。


1. object-c有多继承吗?如果没有,用什么来替代呢?

参考答案:所有的类都基于NSObject,可以用protocol代理来实现多继承的特性。


2. 深浅拷贝类:

2.1 父类实现深拷贝时,子类如何实现深拷贝;父类没有实现深拷贝时,子类又该如何实现深拷贝?

参考答案:

  • 深拷贝与浅拷贝的区别:浅拷贝属于指针拷贝,对一个对象进行浅拷贝,相当于对指向的对象的对象进行复制,生成一个新的指向这个对象的指针,即两个指针指向同一对象,该对象一销毁,两个指针都会变成null。深拷贝是对对象进行拷贝,即生成两个指针指向两个对象,其中一个对象被销毁,另一个对象不受影响。
  • 深拷贝需要实现NSCoying协议,实现-(id)copyWithZone:(NSZone *)zone方法。当对一个property属性含有copy修饰符的时候,在进行赋值操作的时候实际上就是调用这个方法。
  • 父类实现深拷贝之后,子类只要重写copyWithZone方法,在方法内部调用父类的copyWithZone方法,之后实现自己的属性的处理

  • 父类没有实现深拷贝,子类除了需要对自己的属性进行处理,还要对父类的属性进行处理。

3. KVO,NSNotification,delegate,block的区别是什么?

参考答案:

  • KVO就是cocoa框架实现的观察者模式,是一对多的关系,一个值的变化会通知所有的观察者。一般同KVC搭配使用。例如:一个X轴坐标的改变,会通知所有的观察者。一般的使用场景的监测数据的变化。
  • NSNotification和KVO是一样的,都是状态变化之后告知对方,是一对多的关系(全局通知,弱关联)。NSNotification的特点,就是需要被观察者先主动发出通知,然后观察者注册监听后再来进行响应,比KVO多了发送通知的一步,但是其优点是监听不局限于属性的变化,还可以对多种多样的状态变化进行监听,监听范围广,使用也更灵活。
  • delegate 是代理,就是我不想做的事情交给别人做,是一对一的关系(强关联)。一般的使用场景是行为。
  • block是delegate的另一种形式,是函数式编程的一种形式。使用场景跟delegate一样,相比delegate更灵活,而且代理的实现更直观。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值