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从哪些方面进行流畅度优化?

 

posted @ 2016-08-18 17:16  Ficow  阅读(262)  评论(0编辑  收藏  举报