https://github.com/marcsteven/iosinterviewknowledge
iOS interview
https://github.com/marcsteven/iosinterviewknowledge
Last synced: 4 months ago
JSON representation
iOS interview
- Host: GitHub
- URL: https://github.com/marcsteven/iosinterviewknowledge
- Owner: MarcSteven
- Created: 2020-11-06T12:12:02.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2020-11-12T06:57:40.000Z (over 5 years ago)
- Last Synced: 2025-01-12T12:17:40.940Z (over 1 year ago)
- Size: 4.88 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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,你所了解的设计模式