iOS面试题-每日十道-第四天

iOS面试题-每日十道-第四天_第1张图片
个人理解 有误的地方 欢迎小伙伴能给指出

一. 简述iOS动画机制

iOS分为显式动画,隐式动画

  • 显式动画: 对一些属性做指定的自定义动画,或者创建非线性动画,比如沿着任意一条曲线移动。
  • 隐式动画:主要是作用于非根层,也就是自己手动创建的layer,当对它的一些属性进行修改时,会自动产生一些动画效果

二. 什么是UIKit?

UIKit是iOS上的AppKit的变种,用于为iOS应用程序提供界面对象和控制器。
与AppKit类似,UIKit框架有UIResponder,也采用事件(UIEvent类)机制。
另外,iOS上的应用程序都是一个UIApplication实例。 所有的iOS应用程序都基于UIKit ,它提供了在屏幕上绘制的机制,捕获事件,和创建通用用户界面元素。
UIKit也通过管理显示在屏幕上的组件来组织复杂的项目。
使用UIKit可以:
• 构建和管理你的用户界面
• 捕获触摸和基于移动的事件
• 呈现文字和web内容
• 优化你的多任务程序
• 创建定制的用户界面元素

三. 三此握手,具体怎么交互?

  • 第一次握手:客户端发送syn(syn=j)包到服务器;并进入SYN_SEND状态,等待服务器确认

  • 第二次握手:服务器收到syn包,确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态

  • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

注意:三次握手中发送的包不包含数据,三次握手完毕,客户端和服务器才正式开始传送数据。TCP连接一旦建立,在通信双方的任何一方主动关闭连接之前,TCP连接都将被一直保持下去

四. 什么是安全释放?

对象呗释放的时候,指向nil

五. 在iphone上有两件事情要做,请问是在一个线程里按顺序做效率高还是两个线程里做效率高?

如果两件事有依赖关系,事件二必须等到事件一执行完毕才执行,那么放在一个线程就可以了,如果两者并没有什么关联,放到两个线程并发执行效率较高

六. 4、NSArray和NSSet有何区别?

NSSet: 里面存放的元素是无序的,不重复的,可以通过anyObject来访问单个元素.在搜索一个一个元素时NSSet比NSArray效率高,主要是它用到了数据结构中的哈希算法,而NSArray则是需要遍历全部的数组元素,效率会低一些.
NSArray : 里面存放的元素是有序的,可以有重复的对象,可以通过下标来访问里面的数组元素

七. __weak什么时候用?

当两个对象互相引用的时候,一端用strong,另一端必须用weak .例如: A拥有B, B也拥有A, 那么必须一方使用weak
一般UI控件都可以使用weak,因为自身已经对它进行一次强引用,没有必要再强引用一次.

八. 列举几个常用集合类和存放二进制数据类?

NSArray,NSDictionary,NSSet,以及他们的可变类
存放二进制的有NSData类

九. 多线程,写出常用的几个类

  • Pthread
  • NSThread
  • GCD
  • NSOperationQueue

十. 一般在哪个函数中创建某个View的子view?

viewDidLoad方法


纯手动 有地方是个人理解 有误的地方希望大家能给指出 谢谢
如果对您有帮助 希望能给个关注和喜欢~~~

你可能感兴趣的:(iOS面试题-每日十道-第四天)