ios面试几道题测试你的基础怎样
[iOS面试题 -总结 ,你的基础扎实吗?]
1、#import和#include的区别,@class代表什么?
2、浅拷贝和深拷贝区别是什么?
3、Objective-C中类别和类扩展的区别?
4、Objective-C堆和栈的区别?
5、内存管理的几个原则是什么?
6、NSMuatableArray *array = [NSMuatableArray array] 需要释放么?
7、@property本质是什么
8、delegate用什么属性修饰,ARC下与MRC下有何不同,为什么?
9、NSString,NSArray,NSMutableArray分别用什么属性修饰,原因是什么?
10、block用什么属性修饰,为什么?
11、__block与__weak的区别是什么?
12、assign与weak的区别是什么?
13、分别写一个setter方法
完成
@property(nonatomic,retain)NSString *name和@property(nonatomic,copy)NSString *name
14、@autoreleasepool {for (long i = 0; i < largeNumber; i++) {Person *per = [[Person alloc] init];[per autorelease];}}有什么内存问题,如何改正?
15、如何写一个单例?
16、post与get的区别?
17、Http与tcp,udp的区别?
18、http都设置哪些header?
19、http与https的区别?
20、网络七层协议(http,tcp/ip处于哪一层)?
21、常用多线程方式有哪些?
22、NSOperation比GCD有哪些优点,如何处理线程依赖
23、runloop与线程的关系
24、runtime的理解
25、在实际项目中遇到过死锁么?如何处理死锁问题
26、runloop有几种模式,runloop接收几种输入源
27、如何处理滑动UI过程中,广告轮播图停止轮询问题,使用runloop的哪种模式
28、有一个需求,需要将N个请求全部完成之后执行某个操作,该如何处理
29、weak会有性能开销么?使用什么代替
30、autorelease pool的原理是什么
31、runloop的原理
32、runloop与autoreleasepool的关系
33、block会延长对象的生命周期么?
34、SSL加密流程
35、网络加密方式有哪些,各自的原理
36、AFnetworking原理
37、SDWebImage框架原理以及是如何做图片缓存的
38、冒泡排序/快速排序算法
39、CALayer与UIView的区别是什么?
40、iOS有几种动画,各自是什么?
41、用熟悉的动画写一个移动的动画
42、instancetype与id的区别
43、如何进行代码适配
44、xib如何处理动态view布局
45、如何处理webview与js之间交互
46、自己自定义一个轮播图
47、如何进行热修复?
48、对MVVM的理解以及如何实践
49、如何进行自动化打包?
50、如何对网络请求进行二次封装
51、比如开发人员要打发布包与企业包,如何在不修改bundle id的情况下快速打包?
52、block比delegate有哪些优缺点
53、FMDB是线程安全的么?
54、tableview从哪些方面进行流畅度优化?