An open API service indexing awesome lists of open source software.

https://github.com/marcsteven/iosinterviewknowledge

iOS interview
https://github.com/marcsteven/iosinterviewknowledge

Last synced: 4 months ago
JSON representation

iOS interview

Awesome Lists containing this project

README

          

# iOSInterviewKnowledge
iOS interview
## 基础问题
1,swift中的let和var是什么?

2,swift中的optional和nil是什么,nil在oc中是什么?

3,struct和class的区别是?如何选择

4,iOS中内存是怎么管理的

5,属性和实例变量在oc和swift中是什么?

6,OC和swift中的协议是什么?如何使用

7,分类和扩展是什么?有什么区别?如何使用

8,闭包是什么?如何使用

9,什么是MVC?

10,什么是单例?单例怎么使用

11,iOS中的delegate 模式

12,什么是KVO?什么是KVC

13,iOS应用的生命周期

14,什么是ViewController?它的生命周期

## 网络篇

1,什么是HTTP?什么是HTTPS?它们的区别

2,什么是Rest?

3,iOS中你是怎么实现网络请求的?

4,网络层应该放置什么呢

5,什么是NSURLSession? 如何使用

6,AFNetworking 和Alamofire是什么?如何使用

7,如何处理网络请求中的多线程?

8,你如何序列化映射后台返回的json data

9,如何下载图片?

10,如何缓存图片?

11,如何下载大文件

12,你是否用过socket

13,RestKit是什么?它用于做什么,它的优点和缺点

14,你替代RestKit的方案是?

15,你怎么测试网络请求的?

## 数据存储

1,iOS中的数据存储是什么?

2,你用什么来做数据存储?

3,什么是NSCoding?

4,什么是NSUserDefaults?

5,KeyChain是什么,什么时候需要用它呢

6,你怎么保存数据到一个disk呢?

7,当你存储数据的时候如何做数据映射的

8,你的应用中你如何做数据库设计,存储合并的呢?

## UI问题

1,在UI开发中最大的挑战是什么?

2,你用什么来用于你的UI准确布局?

3,CGRect的frame是什么?什么时候你用它?

4,view和layer是什么?

5,什么是AutoLayout?什么时候你要它呢?

6,compression resistance和content hugging priorities 是什么?

7,AutoLayout和多线程怎么一起工作?

8,使用代码和storyboard来编写界面的优点和特点

9,在多人团队中你如何和多人协同开发?

10,你是如何混用frame和AutoLayout的

11,iOS中对应的动画选项有哪些?

12,你是如何使用TableView的?

13,你如何用UICollectionView

14,你如何使用UIScrollView

15,什么是UIStackView?什么时候用它?

16,什么是UITabbarController?

17, UI响应式布局你用过哪些

18,你是如何和设计稿保持一像素的完美布局的?

19, 你是如何做UI单元和迭代测试的呢?

## 架构和设计模式问题
1,MVC和MVVM有什么区别?

2,什么是VIPER?

3,讲讲UBer的RIB架构

4,iOS分层设计的话要怎么做呢

5,iOS中你怎么做依赖管理的?SPM和Cocoapods的优劣

6,Solid原则是什么? 你在开发的时候怎么做的?

7,什么是函数式编程?什么是函数响应式编程?

8,你所了解的设计模式