2018面试题:

1、KVO、KVC 是什么,各自底层的实现原理?

2、说说你理解的埋点?

3、消息转发机制原理?

4、说说你理解的weak属性,什么情况下使用 weak 关键字,相比 assign 有什么不同??

5、假如Controller太臃肿,如何优化?

6、项目中网络层如何做安全处理?

7、main()之前的过程有哪些?

http://www.cocoachina.com/ios/20180305/22453.html

8、怎么高效的实现控件的圆角效果?

9、NSIRLConnection 和NSLRLSession 的区别是 么? NSURLProtocol是做什么的?

10、AutoLayout 中的优先级是什么? UIScrollView 中使用Autolayout 会出现什么问题?

11、如何处理UITableVier 中Cell 动态计算高度的问题,都有哪些方案?

12、UIview 和CAlayer 是什么关系? 你 CLayer 做过什么?

13、你在什么场景下会选择使 Category ?类别有什么作用?

14、讲讲iOS事件响应链的原理?

15、什么是 method swizzing ? 讲讲你的使场景以及使时的注意事项?

16、写个“标准“宏 MIN ,这个宏输两个参数并返回较小的那个?

17、介绍下 layoutSubview 和 drawRect?

18、runloop 和线程有什么关系?

19、对程序性能的优化你有什么建议?

20、分析json、xml 的区别 ?  json、xml 解析方式的底层是如何让处理的 ?

21、重写-个NSString类型的,retain 式声明 name 属性的 setter 和 getter 法( MRC ) ?

22、用预处理指令 define 声明个常数, 来表明一年中有多少秒(忽略闰年的问题)。

23、IBOutlet 连出来的视图属性为什么可以被设置成weak?

24、属性readwrite、readonly、assign、retain、copy、nonatomic 什么作用 ? 在哪种情况下 ?

25、#import 和 #include 有什么区别? @class 呢 ? #import <> 和 #import"" 有什么区别?

26、指针与数组名的关系?

27、OC中创建线程的方法是什么? 如果在主线程中执行代码,方法是什么? 如果想延时执行代码,方法是什么?

28、堆和栈的区别?

http://www.cocoachina.com/ios/20180425/23171.html

29、设计模式是什么? 你知道哪些设计模式,并简要叙述?

30、MVC 、MVVM 、MVP 的区别?

31、frame 和 bounds 有什么不同?

32、Objective-C的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?

33、@property 的本质是什么?ivar、getter、setter 是如何生成并添加到这个类中的

34、@property中有哪些属性关键字?/ @property 后面可以有哪些修饰符?

35、用@property声明的 NSString / NSArray / NSDictionary 经常使用 copy 关键字,为什么?如果改用strong关键字,可能造成什么问题?

36、浅拷贝和深拷贝的区别?

37、系统对象的 copy 与 mutableCopy 方法?

38、这个写法会出什么问题:@property (nonatomic, copy) NSMutableArray *arr ;

39、如何让自己的类用 copy 修饰符?如何重写带 copy 关键字的 setter ?

40、写一个 setter 方法用于完成 @property (nonatomic, retain) NSString *name ,写一个 setter 方法用于完成 @property (nonatomic, copy) NSString *name

41、@synthesize 和 @dynamic 分别有什么作用?

42、常见的 Objective-C 的数据类型有那些,和C的基本数据类型有什么区别?如:NSInteger 和 int

43、id 声明的对象有什么特性?

44、Objective-C 如何对内存管理的,说说你的看法和解决方法?

45、Objective-C 中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么?

46、Category(类别)、 Extension(扩展)和继承的区别?

47、我们说的OC是动态运行时语言是什么意思?

48、为什么我们常见的delegate属性都用是week而不是retain/strong ?

49、什么时候用delete,什么时候用Notification ?

50、ViewController生命周期?

51、方法和选择器有何不同?

52、你是否接触过OC中的反射机制?简单聊一下概念和使用?

53、调用方法的两种方式?

54、如何对iOS设备进行性能测试?

55、开发项目时你是怎么检查内存泄露?

56、什么是懒加载?

57、类变量的 @public,@protected,@private,@package 声明各有什么含义?

58、什么是谓词?

59、isa指针问题?

60、如何访问并修改一个类的私有属性?

61、一个 objc 对象的 isa 的指针指向什么?有什么作用?

62、下面的代码输出什么?

63、写一个完整的代理,包括声明、实现?

64、isKindOfClass、isMemberOfClass、selector 作用分别是什么?

65、delegate 和 notification 的区别?

66、什么是 block ?

67、block反向传值?

68、block的注意点?

69、BAD_ACCESS在什么情况下出现?

70、lldb(gdb)常用的控制台调试命令?

71、你一般是怎么用 Instruments 的?

72、iOS中常用的数据存储方式有哪些?

73、iOS的沙盒目录结构是怎样的?

74、iOS多线程技术有哪几种方式?

75、GCD 与 NSOperation 的区别?

76、写出使用 GCD 方式从子线程回到主线程的方法代码?

77、如何用 GCD 同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)

78、dispatch_barrier_async(栅栏函数)的作用是什么?

79、以下代码运行结果如何?

80、什么是 RunLoop ?

81、什么是 Runtime ?

82、Runtime实现的机制是什么,怎么用,一般用于干嘛 ?

83、什么是 Method Swizzle(黑魔法),什么情况下会使用?

84、_objc_msgForward 函数是做什么的,直接调用它将会发生什么?

85、什么是 TCP / UDP ?

86、通信底层原理(OSI七层模型)?

87、介绍一下 XMPP ?

88、OC 中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?

89、tableView 的重用机制?

90、用伪代码写一个线程安全的单例模式?

91、如何实现视图的变形?

92、在手势对象基础类 UIGestureRecognizer 的常用子类手势类型中哪两个手势发生后,响应只会执行一次?

93、字符串常用方法?

94、如何高性能的给 UIImageView 加个圆角?

95、你是怎么封装一个 view 的?

96、HTTP协议中 POST 方法和 GET 方法有那些区别?

97、请简单的介绍下 APNS 发送系统消息的机制?

98、AFNetworking 底层原理分析?

99、描述下 SDWebImage 里面给 UIImageView 加载图片的逻辑?

100、友盟统计接口统计的所有功能?

101、不用中间变量,用两种方法交换 A 和 B 的值?

102、求最大公约数?

103、模拟栈操作 ?

104、排序算法?

105、折半查找(二分查找)?

106、在 Objective-C 中,enum 建议使用 NS_ENUM 和 NS_OPTIONS 宏来定义枚举类型?

107、避免使用C语言中的基本数据类型,建议使用 Foundation 数据类型,对应关系如下?

108、谈谈 UITableView 的优化?

109、如何实行cell的动态的行高?

110、如何让计时器调用一个类方法?

111、如何重写类方法?

112、NSTimer 创建后,会在哪个线程运行?

113、id 和 NSObject* 的区别?

114、iOS 开发逆向传值的几种方法整理 ?

115、浅谈iOS开发中方法延迟执行的几种方式 ?

116、NSPersistentStoreCoordinator , NSManaged0bjectContext 和 NSManaged0bject 中的那些需要在线程中创建或者传递?

117、您是否做过一部的网络处理和通讯方面的工作?如果有,能具体介绍一下实现策略么?

118、你使用过 Objective-C 的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗?

119、Core 开头的系列的内容。是否使用过 CoreAnimation 和 CoreGraphics 。UI 框架和 CA,CG 框架的联系是什么?分别用 CA 和 CG 做过些什么动画或者图像上的内容。(有需要的话还可以涉及 Quartz 的一些内容)?

120、是否使用过 CoreText 或者 CoreImage 等?如果使用过,请谈谈你使用 CoreText 或者 CoreImage 的体验?

121、NSNotification 和 KVO 的区别和用法是什么?什么时候应该使用通知,什么时候应该使用 KVO,它们的实现上有什么区别吗?如果用 protocol 和 delegate(或者 delegate 的 Array )来实现类似的功能可能吗?如果可能,会有什么潜在的问题?如果不能,为什么?(虽然 protocol 和 delegate 这种东西面试已经面烂了…)

122、你用过 NSOperationQueue 么?如果用过或者了解的话,你为什么要使用 NSOperationQueue,实现了什么?请描述它和 GCD 的区别和类似的地方(提示:可以从两者的实现机制和适用范围来描述)

123、既然提到 GCD,那么问一下在使用 GCD 以及 block 时要注意些什么?它们两是一回事儿么?block 在 ARC 中和传统的 MRC 中的行为和用法有没有什么区别,需要注意些什么?

124、对于 Objective-C,你认为它最大的优点和最大的不足是什么?对于不足之处,现在有没有可用的方法绕过这些不足来实现需求。如果可以的话,你有没有考虑或者实践过重新实现OC的一些功能,如果有,具体会如何做?

125、你实现过一个框架或者库以供别人使用么?如果有,请谈一谈构建框架或者库时候的经验;如果没有,请设想和设计框架的 public 的 API,并指出大概需要如何做、需要注意一些什么方面,来使别人容易地使用你的框架?

https://www.jianshu.com/p/2e1b3f54b4f3

转载于:https://www.cnblogs.com/wangchan/p/9507060.html

iOS【面试】2018年面试题集锦相关推荐

  1. 【Android面试】Android面试题集锦 (陆续更新)

    [Android面试]Android面试题集锦 (陆续更新) 分类: [杂七杂八]2011-05-11 17:58 2064人阅读 评论(0) 收藏 举报 一些常见的Android面试基础题做下总结, ...

  2. 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18)

    1.android开发新浪面试题[开发者必看哦] 下载地址 http://www.eoeandroid.com/thread-177885-1-1.html 2.华为关于android笔试题案例解析 ...

  3. 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18) eoe上看到的

    ===============eoeAndroid社区推荐:======================= 1.Android开发新浪面试题[开发者必看哦] 下载地址 http://www.eoean ...

  4. 【测试面试】测试面试题集锦(二)

    给你一个全新的软件,你就是负责人,你怎么去开展测试工作 参考回答: 第一步:需求分析:我会对这个全新的软件需求进行全面分析,主要的分析点有:1.软件的版本需求合理性,是否可测试:2.项目人员配置(遇到 ...

  5. iOS面试题集锦附答案及必需具备的知识

    面试看面试官水平和心情,我遇到一本正经的问题还有"安卓用三个按键,苹果为什么只有一个 home键?""你觉得你是个有爱的人吗?""你男朋友是在哪里做什 ...

  6. 测试面试题集锦(六)| 软素质篇与反问面试官篇(附答案)

    原文链接 本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群. 本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的.网络搜集(完善).工作日常讨论等,分为以下几个部分,供大 ...

  7. Java面试----2018最全Redis面试题整理

    Java面试----2018最全Redis面试题整理 1.什么是Redis? 答:Redis全称为:Remote Dictionary Server(远程数据服务),是一个基于内存的高性能key-va ...

  8. 平面设计师美工面试试题集锦

    平面设计师美工面试试题集锦 一.设计理念方面的问题(以下问题没有标准答案,但可以在沟通的过程是了解对方理论方面的深浅程度): 1.在你所见的平面设计作品中你认为哪些国家或地区的作品令你印象深一些?为什 ...

  9. 算法工程师面试问题及相关资料集锦(附链接)

    来源:专知 本文约9800字,建议阅读20分钟. 本文为你介绍算法工程师面试问题及相关资料集锦,相当全面,值得收藏. 目录 算法工程师 Github.牛客网.知乎.个人博客.微信公众号.其他 机器学习 ...

最新文章

  1. 如何优雅地实现分页查询
  2. [Micropython]TPYBoard v202 邪恶改装:TPYBoard制作廉价WIFI干扰器
  3. inline hook __usercall 函数
  4. 深入浅出之抽象与非抽象
  5. JZOJ5776. 【NOIP2008模拟】小x游世界树
  6. Prometheus监控学习笔记之360基于Prometheus的在线服务监控实践
  7. c语言宏定义替换字符串,C语言中,宏替换的替换规则
  8. 实录:VCS双机使用DiskReservation资源导致多路径失效
  9. easyui下拉选项多怎么解决_作物根部病害多原因在哪?解决病害生根措施怎么做?...
  10. Unity PlayerPrefs类进行扩展(整个对象进行保存)
  11. vscode常用emmet语法及快捷键
  12. 2022张宇考研基础30讲 第十一讲 多元函数微分学
  13. java图片文字识别_java实现图片文字识别ocr
  14. python邮件收发
  15. SiT1602:SiTime低功耗单端有源晶振
  16. 深夜加油站遇到苏格拉底
  17. 查看漏洞库平台有哪些?
  18. C语言实现植物大战僵尸----学习过程
  19. easyefi添加引导盘重启消失引导解决办法
  20. laya龙骨换装_FairyGUI - 骨骼动画

热门文章

  1. 从高频问题透视核心原理(转)
  2. a - 数据结构实验之串一:kmp简单应用_Java程序员必会之数据结构与算法全梳理
  3. ubuntu 编译android .img_全网可用交叉编译工具链大全
  4. eclipse adt如何切换到设计界面_如何设计出优秀的UI界面?这4个方面帮你快速优化...
  5. IntelliJ IDEA设置TortoiseSVN插件(Cannot run program svn)
  6. mysql如何容器化_MySQL容器化详细教程
  7. python检测excel是否打开_Python判断远程服务器上Excel文件是否被人打开的方法_学领未来...
  8. 时间插件只能选择整点和半点_外贸人如何把控合适的客户开发时间及跟进频率...
  9. php自定义类生成lib,thinkphp引入自定义封装类
  10. C语言——指针篇(三)数组的下标引用和指针访问