最新iOS开发常见面试题总结二!(附答案)!

本文总结了iOS开发中的常见面试问题,包括线程与进程的区别、事件处理、static关键字作用、UIEvent对象、ViewController的生命周期、Objective-C优缺点、内存管理、堆栈区别、Delegate与Notification的使用场景、UITouch对象、内存管理、单例模式、类别作用、键值编码等知识点,旨在帮助开发者更好地准备面试。
摘要由CSDN通过智能技术生成

#1.iOS线程与进程的区别和联系?

进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。

程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS开发交流群:130595548,不管你是小白还是大牛都欢迎入驻 ,让我们一起进步,共同发展!(群内会免费提供一些群主收藏的免费学习书籍资料以及整理好的几百道面试题和答案文档!)

#2.iOS 如何找到最合适的控件来处理事件?

自己是否能接收触摸事件?
触摸点是否在自己身上?
从后往前遍历子控件,重复前面的两个步骤
如果没有符合条件的子控件,那么就自己最适合处理

#3.iOS static 关键字的作用?

(1)函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变量的内存只被分配一次,

因此其值在下次调用时仍维持上次的值;

(2)在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;

(3)在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明

它的模块内;

(4)在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;

(5)在类中的 static 成员函数属于整个类所拥有,这个函数不接收 this 指针,因而只能访问类的static 成员变量。

#4.iOS UIEvent对象的作用与常见属性?

每产生一个事件,就会产生一个UIEvent对象

UIEvent : 称为事件对象,记录事件产生的时刻和类型
常见属性 :

  //事件类型
  //@property(nonatomic,readonly) UIEventType     type;
  //@property(nonatomic,readonly) UIEventSubtype  subtype;
  //事件产生的时间
  @property(nonatomic,readonly) NSTimeInterval  timestamp;
  UIEvent还提供了相应的方法可以获得在某个view上面的触摸对象(UITouch)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值