iOS 面试 常见问题及简单答案

1.使用swift还是Object C?

这个如果目前使用swift的话,最好还是准备下,从几个方面,iOS系统 iOS8.0以下 占有率只有6%了,那么如果不是大公司,仅支持iOS8.0以上是OK的,今年的iOS10发布后,苹果自家应用会全部用swift改写,而且目前swift生态已经比较火热,可以预计不用一年,swfit将会变得比较主流,在开发效率上提高比较多。包大小并不算什么问题,何况大多数用户都是连接WiFi自动更新。现在包很大只是暂时的,听说iOS9出来之后系统会自带Swift相关的Library,到时候就不需要把这些Library放进包里了。


2.swift和OC混编

swift 导入到 swift  不需要import语句

swift 导入到 OC  #import "ProductModuleName-Swift.h”

OC 导入到 swfit  不需要import语句; 需要 Objective-C bridging头文件

OC 导入到OC  #import “Header.h”


3.OSI 七层模型

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

应用层包含常见的 http  ftp telnet smtp DNS 等协议

传输层包含 TCP  UDP

TCP 面向连接需要三次握手,比较可靠,UDP 提供不可靠传输,但是传输经济。

HTTP 包含的方法有 GET POST HEAD PUT DELETE TRACE CONNECT OPTIONS

GET 和 post  区别

1.GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

POST把提交的数据则放置在是HTTP包的包体中。

POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了


4.多线程实现的几种方式

NSThread

NSOperationQueue

GCD dispatch_async(dispatch_get_main_queue(), ^{ }

用NSObject的类方法performSelectorInBackground:withObject:创建一个线程:[Obj performSelectorInBackground:@selector(doSomething) withObject:nil];

GCD以 block 为单位,代码简洁。同时 GCD 中的队列、组、信号量、source、barriers 都是组成并行编程的基本原语。对于一次性的计算,或是仅仅为了加快现有方法的运行速度,选择轻量化的 GCD 就更加方便。

而 NSOperation 可以用来规划一组任务之间的依赖关系,设置它们的优先级,任务能被取消。队列可以暂停、恢复。NSOperation 还可以被子类化。这些都是 GCD 所不具备的。

延迟执行

GCD  dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{}

用NSObject的类方法  performSelector  withObject  afterDelay


5.同步几的几种实现方式

NSLock  NSRecursiveLock  NSCondition  NSDistributedLock  synchronized


6.Block

向一个函数提供代码,这些代码在函数完成之后运行,下载或者长时间的计算

为对象提供代码,,当对象认为必要的时间可以调用这些代码 事件处理器。


7.设计模式

代理模式  tableview的数据源delegate,通过和protocol配合,完成委托诉求。

观察者模式  Notification 通知中心。  KVO

MVC模式

单例模式  UIapplication  sharedApplication

你可能感兴趣的:(iOS 面试 常见问题及简单答案)