美文网首页
17_06_20_面试题

17_06_20_面试题

作者: 喵呜呜喵 | 来源:发表于2017-06-20 17:27 被阅读0次

在iOS开发的一篇推送中, 发现了好多面试题, 仔细看了看, 好多都答不上来, 先把这些记下来, 慢慢找到答案吧 🤦‍♀️

技术

基础

为什么说Objective-C是一门动态的语言?

讲一下MVC和MVVM,MVP?

无意间看到了这一片文章 http://ios.jobbole.com/93091/  有空好好研究下.

为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别?

属性的实质是什么?包括哪几个部分?属性默认的关键字都有哪些?@dynamic关键字和@synthesize关键字是用来做什么的?

属性的默认关键字是什么?

NSString为什么要用copy关键字,如果用strong会有什么问题?(注意:这里没有说用strong就一定不行。使用copy和strong是看情况而定的)

如何令自己所写的对象具有拷贝功能?

可变集合类 和 不可变集合类的 copy 和 mutablecopy有什么区别?如果是集合是内容复制的话,集合里面的元素也是内容复制么?

为什么IBOutlet修饰的UIView也适用weak关键字?

nonatomic和atomic的区别?atomic是绝对的线程安全么?为什么?如果不是,那应该如何实现?

UICollectionView自定义layout如何实现?

用StoryBoard开发界面有什么弊端?如何避免?

进程和线程的区别?同步异步的区别?并行和并发的区别?

线程间通信?

GCD的一些常用的函数?(group,barrier,信号量,线程同步)

如何使用队列来避免资源抢夺?

数据持久化的几个方案(fmdb用没用过)

说一下AppDelegate的几个方法?从后台到前台调用了哪些方法?第一次启动调用了哪些方法?从前台到后台调用了哪些方法?

NSCache优于NSDictionary的几点?

知不知道Designated Initializer?使用它的时候有什么需要注意的问题?

实现description方法能取到什么效果?

objc使用什么机制管理对象内存?

中级

Block

block的实质是什么?一共有几种block?都是什么情况下生成的?

为什么在默认情况下无法修改被block捕获的变量? __block都做了什么?

模拟一下循环引用的一个情况?block实现界面反向传值如何实现?

Runtime

objc在向一个对象发送消息时,发生了什么?

什么时候会报unrecognized selector错误?iOS有哪些机制来避免走到这一步?

能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?

runtime如何实现weak变量的自动置nil?

给类添加一个属性后,在类结构体里哪些元素会发生变化?

RunLoop

runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop么?子线程呢?

runloop的mode是用来做什么的?有几种mode?

为什么把NSTimer对象以NSDefaultRunLoopMode(kCFRunLoopDefaultMode)添加到主运行循环以后,滑动scrollview的时候NSTimer却不动了?

苹果是如何实现Autorelease Pool的?

类结构

isa指针?(对象的isa,类对象的isa,元类的isa都要说)

类方法和实例方法有什么区别?

介绍一下分类,能用分类做什么?内部是如何实现的?它为什么会覆盖掉原来的方法?

运行时能增加成员变量么?能增加属性么?如果能,如何增加?如果不能,为什么?

objc中向一个nil对象发送消息将会发生什么?(返回值是对象,是标量,结构体)

高级

UITableview的优化方法(缓存高度,异步绘制,减少层级,hide,避免离屏渲染)

有没有用过运行时,用它都能做什么?(交换方法,创建类,给新创建的类增加方法,改变isa指针)

看过哪些第三方框架的源码?都是如何实现的?(如果没有,问一下多图下载的设计)

SDWebImage的缓存策略?

AFN为什么添加一条常驻线程?

KVO的使用?实现原理?(为什么要创建子类来实现)

KVC的使用?实现原理?(KVC拿到key以后,是如何赋值的?知不知道集合操作符,能不能访问私有属性,能不能直接访问_ivar)

项目

有已经上线的项目么?

项目里哪个部分是你完成的?(找一个亮点问一下如何实现的)

开发过程中遇到过什么困难,是如何解决的?

相关文章

  • 17_06_20_面试题

    在iOS开发的一篇推送中, 发现了好多面试题, 仔细看了看, 好多都答不上来, 先把这些记下来, 慢慢找到答案吧 ...

  • 面试材料

    面试经验 面试题1 面试题2 面试题3 面试题4 面试题5 面试题6――数据结构 面试题7――网络 面试题8――汇...

  • 高阶面试题

    webpack面试题 面试题:webpack插件 Git面试题 面试题:git常用命令 面试题:解决冲突 面试题:...

  • this的指向的面试题

    面试题1 面试题2 面试题3 面试题4

  • 面试所涉及的问题

    面试题参考1 : 面试题 面试题参考2 : 内存管理 面试题参考3 :面试题 ...

  • Android超实用最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • Android最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • 2022年web前端面试题

    web前端面试题分为:html/css面试题、javascript面试题、vue面试题、性能优化面试题、网络方面面...

  • ios面试题

    初级面试题 中级面试题 高级面试题 swift篇

  • Android超实用最全面试大纲(四)

    文章目录: 冷启动和热启动面试题 其他优化面试题 架构模式面试题 插件化面试题 热更新面试题 进程保活面试题 Li...

网友评论

      本文标题:17_06_20_面试题

      本文链接:https://www.haomeiwen.com/subject/fikaqxtx.html