ios面试题积累

有待掌握理解的知识点

1.http 与 https之间的区别?

2.block,Delegate,NSNotification之间的区别,分别在什么情况下使用?

3.多线程实现的方式有几种?有什么区别?分别在哪种情况下使用?

4.异步与同步线程的理解

5.数组去重的方式有哪些?
[可利用字典KEY的唯一性,集合NSSet有自动去重的特性,可变数组提供的方法containsObject方法等来思考解答思路]

6、具有unity开发经验优先。

7.熟悉TCP/UDP/HTTP/Socket等协议,熟练数据结构及常用算法,熟悉面向对象编程;

8.扎实的数据结构/算法基础,熟悉基于TCP/HTTP协议的网络协议;

9、熟悉C++,有C++语言开发经验优先;

10.熟练掌握HTTP、json、DES、RSA等相关技术并能够熟练使用Cocoa Touch APIs,Quartz 2D,OpenGL ES,OpenAL等SDK功能进行开发;

11.要求熟练JNI与SO交互

12.经常使用 Google/Stack Overflow/Quora/Wikipedia 研究软件开发方面的知识;

13.熟悉C#及Xamarin平台开发,熟练掌握iOS界面处理、sqlite数据存储、图型图像、多线程、数据解析(xml/json),网络通信机制;

14.对终端产品UI\UE有一定的见解与认识,追求良好的用户体验;

15、精通性能和内存优化,善于解决系统崩溃,内存溢出和兼容性问题。

16、 熟悉iOS音视频开发,对音视频编码,转码,视频流的播放有实际开发经验。
http://blog.csdn.net/jeffasd/article/details/51958187

17.熟悉第三方支付、远程推送、统计、分享等开发技术

18.了解基本数据层传输协议;
[物理层(硬件,定义传输介质的标准),数据链路层(硬件接口),网络层(IP),传输层(TCP/UDP),会话层,表示层,应用层(http)]

19.IPV4 和 IPV6的区别?

20.要求熟练掌握数据库, 多线程、网络通讯程序,熟悉Webservice、Socket、http编程

21.要求具有丰富的Objective-C 2.0编程经验,熟练使用iPhone/iPad等工具 ,熟练掌握HTTP、json、DES、RSA等相关技术并能够熟练使用Cocoa Touch APIs,Quartz 2D,OpenGL ES,OpenAL等SDK功能进行开发;


关于采用EA框架进行USB连接外设的开发经验

http://blog.csdn.net/u011467458/article/details/52523193

1)、具有IOS手机端的蓝牙、USB调试经验;
2)、熟悉HID\UVC等常用USB协议。
[USB的协议是主从协议,在所有通讯里,只有一个主控器,其它都是从设备。
所有的USB数据交流都是由主控器发起,其它从设备进行响应。]
3).熟悉External Accessory Framework
4).了解MFi认证的条件、流程。

一。第一类是通过网络端口,建立Socket使用TCP/IP协议族进行通信,天然支持多通道

(1).Wi-Fi连接
(2).手机自建热点共享,硬件进行热点接入
(3).NCM,就是把USB端口虚拟成标准的网络端口,然后手机和外设就能通过有线网络直连了,可以理解成手机和外设通过一跟网线连起来了,然后就可以用socket通过TCP,UDP进行通信了。

二。iOS App连接外部硬件的第二大类是EAP,全拼是External Accessory Protocol,外部设备协议(需要集成MFI芯片做认证)
三。第三大类就是BLE,低功耗蓝牙,是iOS7.0以后才支持的连接方式。(不需要集成MFI芯片做认证)]

MFi认证的条件、流程。

(苹果MFi认证,是苹果公司(Apple Inc.)对其授权配件厂商生产的外置配件的一种标识使用许可,是apple公司 “Made for iOS”的英文缩写。)
http://www.jianshu.com/p/b90b0c45398d


协议

http://blog.chinaunix.net/uid-26833883-id-3627644.html

TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议
TCP/IP协议:(1)能连接不同的系统,不同的主机,有纠错校验功能
TCP:
一。三次握手建立连接[客户端(请求端---》服务器---》客户端---》服务器)]
客户端
|[发消息SYN1到服务器端,指明打算连接到服务器端端口,并且发送初始序号!如:我是ISN(唯一标识),我想和A服务器连接]
服务器
|[服务器接收到消息后,回复一条消息SYN2到客户端,指明该服务器的初始序号,并发送一个确认序号(客户的ISN加1)!如:我是A服务器,请确认你
| 是否是客户端 (ISN+1)]
客户端
|[客户端发送一条确认序号SYN3(服务器的ISN+1)进行确认。]
服务器

二。四次挥手断开连接
客户端:关闭自己的socket(套接字)连接,内核协议发送一条消息请求断开连接
服务器端:收到断开请求后回复客户端自己已经接收到请求
服务器端:运行一段时间后关闭自己的socket,内核协议栈向客户端发送一个包请求断开连接
客户端:收到服务器端的断开请求后作出应答,表示已经收到了请求

UDP:无连接,不可靠

SCOKET原理
TCP客户端:socket()-connect()-write()-read()-close()
TCP服务器端:socket()-绑定bind()-listen()-accept()-read()-write()-read()-close()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wxf_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值