ios面试题

来源:互联网 发布:dnf决战人工智能d 编辑:程序博客网 时间:2024/06/06 05:09

1 http与tcp,udp的区别是什么?
答:
1. http:是用于www浏览的一个协议 tcp:是机器之间建立连接用的到的一个协议
2. TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有TCP协议与UDP协议。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。
tcp与udp
面向连接的TCP
tcp:“面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能 建立起来,
面向非连接的UDP协议
“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。这与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
                     tcp           udp
是否连接: 面向连接   面向非连接
传可靠性 : 可靠的    不可靠的
应用场合:  传输大量的数据     少量数据
速度 :      慢          快

2 常用的多线程方式有哪些 ?
       博客多线程有介绍
3 NSOperation比GCD有那些优点?如何处理线程依赖?
GCD是基于C的低层api,NSOperation是属于OC类。ios首先引入的是NSOperation,IOS4之后引入了GCD和NSOperationQueue并且其内部是用gcd实现的。GCD优点:GCD主要与block结合使用。代码简洁高效。执行效率稍微高点。
NSOperation比GCD:1 拥有更多的函数可用。2NSOperation是在GCD基础上实现的,只不过是GCD更高一层的抽象。3在NSOperationQueue中,可以建立各个NSOperation之间的依赖关系. 4NSOperationQueue支持KVO。可以监测operation是否正在执行(isExecuted)、是否结束(isFinished),是否取消(isCanceld)
如何处理线程依赖:
操作依赖
(1)NSOperation之间可以设置依赖来保证执行顺序,⽐如一定要让操作A执行完后,才能执行操作B,可以像下面这么写
[operationB addDependency:operationA]; // 操作B依赖于操作
(2)可以在不同queue的NSOperation之间创建依赖关系 注意:不能循环依赖(不能A依赖于B,B又依赖于A)。

     //创建NSInvocationOperation对象,封装操作14     NSInvocationOperation *operation1=[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(test1) object:nil];15     NSInvocationOperation *operation2=[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(test2) object:nil];16     //创建对象,封装操作17     NSBlockOperation *operation3=[NSBlockOperation blockOperationWithBlock:^{18         for (int i=0; i<5; i++) {19             NSLog(@"NSBlockOperation3--1----%@",[NSThread currentThread]);20         }21     }];22     [operation3 addExecutionBlock:^{23         for (int i=0; i<5; i++) {24         NSLog(@"NSBlockOperation3--2----%@",[NSThread currentThread]);25         }26     }];27     28     //设置操作依赖29     //先执行operation2,再执行operation1,最后执行operation330     [operation3 addDependency:operation1];31     [operation1 addDependency:operation2];32     33     //不能是相互依赖34 //    [operation3 addDependency:operation1];35 //    [operation1 addDependency:operation3];36     37     //创建NSOperationQueue38     NSOperationQueue * queue=[[NSOperationQueue alloc]init];39     //把操作添加到队列中40     [queue addOperation:operation1];41     [queue addOperation:operation2];42     [queue addOperation:operation3];43 }
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 新疆外地电信卡信号差怎么办 华为手机搜索不到wifi怎么办 华为浏览器恢复只有一个页面怎么办 华为手机触摸屏没反应怎么办 快递不给送上楼怎么办 华为荣耀手机声音小怎么办 华为手机来电铃声小怎么办 s弯出来时老压线怎么办 苹果7p手机弯了怎么办 小米手机摔弯了怎么办 华为畅享5没声音怎么办 掌阅语音闪退怎么办 华为mate开屏成排线怎么办 华为mate8电池坏了怎么办 8plus拍照不清晰怎么办 荣耀手环3丢了怎么办 华为mate9手机声音小怎么办 华为麦芒6丢了怎么办 华为麦芒4无法访问移动网络怎么办 自拍时屏幕是白的怎么办 华为麦芒5手机音量小怎么办 小米5x玩王者卡怎么办 小米5x打王者卡怎么办 华为荣耀10卡顿怎么办 麦芒6记不得密码怎么办 华为麦芒4镜头碎了怎么办 三星s5出像网的信号怎么办 华为手机进海水资料怎么办 华为手机进海水了怎么办 苹果手机玩王者荣耀卡怎么办 玩王者荣耀闪屏怎么办 王者荣耀太卡了怎么办 想卖王者号qq怎么办 小米4电视发热严重怎么办 三星玩王者荣耀卡怎么办 华为麦芒5网络差怎么办 华为麦芒无线信号不好怎么办 华为麦芒6网络不好怎么办 华为麦芒6信号差怎么办 华为手机无线网信号差怎么办 华为麦芒6数据信号差怎么办