面试

iOS基础知识整理(一)

2017-07-13  本文已影响48人  摩卡奇

链接:https://www.zhihu.com/question/19604641/answer/56306604

总述

面试开始的时候,我会让面试者选择一个他最熟悉的项目,给我们介绍一下它的技术架构,以及面试者在其中参与的模块和具体工作。因为我本人很讨厌面试上来做自我介绍,所以我一般开门见山,直接开始讲项目了。事实上,很多开发者并不明白我提到的“架构”的具体意思,有些人说了一大堆产品的功能,还有人说的非常笼统(比如,遵循MVC架构之类),一般这种时候我会打断他们,直接让他们给我讲一下这个APP的层次结构,或者是核心模块等。之后我会问两个问题:

  1. 讲述一次在这个APP中,用户触发了一个事件,引起了一个服务请求,然后获取服务端返回,并且更新前端界面的过程。请说的详细一点,比如数据经过了哪些类的处理,每一次传递时的格式是怎么样的?
  2. 你参与的APP,是如何处理多个服务的同步发起的?随后让面试者说一下APP的界面架构,这个比较随意。

Model层:

1. 数据持久化存储方案有哪些?

http://www.jianshu.com/p/7616cbd72845

2. 沙盒的目录结构是怎样的?各自一般用于什么场合?

3. SQL语句问题:inner join、left join、right join的区别是什么?

内连接: 只有两个表相匹配的行才能在结果集中出现
左外连接: 会把左表所有数据查询出来显示 左表不加限制
右外连接: 会把右表所有数据查询出来显示 右表不加限制

4. sqlite的优化

如果对于FMDB不能满足要求可以使用腾讯开源微信数据库框架WCDB

想要真正的吃透sqlite的性能, 需要去翻一下sqlite的文档

http://dev.qq.com/topic/57b6a449433221be01499486

这一部分还没有整理 后续会整理
## 5. 网络通信用过哪些方式(100%的人说了AFNetworking...)

如何处理多个网络请求并发的情况
在网络请求中如何提高性能
在网络请求中如何保证安全性
上一篇 下一篇

猜你喜欢

热点阅读