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