iOS 面试(比较详细的知识点)

记不得出处了,希望勿怪~~

iOS专业能力考察内容

题目难度按级别区分。各级别之间可能没有直接关系,只代表相关问题的深度。
第一级,数字1. 2. 3。属于应该知道范畴,应能回答出来80%以上,算是能干活的人。可以用来面试1-2年经验的人。
第二级,字母a) b) c)。属于有较深理解内容,应能回答出来30%-50%,说明或深或浅的在各知识点有一些研究。能把任何一个问题讲得透彻明白的,都加分。可以用来面试2-3年经验的人。
第三级,罗马数字i. ii,iii.。属于较高级认识阶段,应能回答出10%-20%左右。
1.       简述关键字assign,retain,copy,strong,weak,nonatomic,readonly,setter,synthesize的作用。
a)    ARC是什么,其实现原理。
b)    请简述非ARC内存管理方式的关键原则。ARC的优缺点。
2.     请简述一些UIView的常见属性的作用及其默认值。(frame、tag、userInteractionEnabled、clipsToBounds,layer等)
a)    frame属性与bounds属性的作用与区别。
i.        做动画时应使用哪个属性?为什么?
b)    CALayer与UIView的关系及各自的作用。
3.     请列举UITableViewDelegate、UITableViewDataSource里的函数。哪些是必须实现的(numberOfRow, cellForRow)?哪些是不必实现的?
a)    请简述自己实现一个简单tableView的思路与关键点。(内存重用)
4.     按下UIButton到手指从屏幕离开,总共可以触发哪些函数?
a)    触控事件有哪几个状态?(UITouchPhaseBegan,Moved,Ended,Cancelled)。
b)    UIWindow,UIView,UIViewController,UIApplication,UIResponder, UIScreen的父类是什么。
       UIView    UIResponder  UIResponder   UIResponder    NSObject     NSObject
c)    事件响应链流程。
i.        hitTest、pointInside及如何修改事件响应的顺序。
5.     UIViewController的生命周期。(didLoad,willAppear等)
a)    loadView函数
b)    viewDidUnload函数、didReceiveMemoryWarning函数


6.     你使用过或见过哪些动画方式。([UIView beginAnimations: context:]、[UIView animateWithDuration]、Core Animation、OpenGL ES) 


a)    它们的效率有差别么?有的话请排序。
b)    请简述CAKeyframeAnimation的使用方法。
i.         请简述显式事务、隐式事务及事务嵌套。
ii.        贝塞尔曲线是什么?你在哪见过它?(动画里的时间函数CAMediaTimingFunction、路径函数等都是贝塞尔曲线)
7.     定义一个block变量。
a)    循环引用导致的内存问题
i.        block的底层实现
8.     NSNotification和KVO的区别和用法是什么?
a)    它们的实现上有什么区别?
b)    如果用protocol和delegate(或者delegate的Array)来实现类似的功能,可能吗?如果可能,会有什么潜在的问题?如果不能,为什么?
9.     请简述你用过的iOS多线程方式。

a)    NSOperation中start和main方法有什么区别?

       如果你把NSOperation交给队列去维护,只需要实现main方法就行了,但是你如果想要手动去控制这个线程(启动。。。),需要自己调用start方法,但是这样是不安全的,         因为若没有获得充分资源,而此时你调用start方法,就会抛出异常。

b)    使用gcd处理一些并行任务,可以有哪些方法。哪种方法最好最值得推荐?
c)    是否使用过信号量或条件锁。
 i.        iOS系统多线程模型及它们的优缺点。
 ii.        常见基础类中,哪些类是线程安全的?KVO是线程安全的么?
10.  请简述iOS持久化存储有哪些方式。
11.  请简述你在iOS开发中见到的一些设计模式。
12.  使用过Objective-C的运行时编程(Runtime Programming)么?用它做了什么?记得所使用的相关的头文件或者某些方法的名称吗?
13.  使用过哪些Core打头的内容(CoreData,CoreAnimation,CoreGraphics,CoreText,CoreImage)。
a)    评价任一Core打头的框架。
b)    CA框架、CG框架和UI框架的联系是什么。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值