iOS面试题-每日十道-第四天
一. 简述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方法
纯手动 有地方是个人理解 有误的地方希望大家能给指出 谢谢
如果对您有帮助 希望能给个关注和喜欢~~~