iOS精品文章-面试iOS面试iOS面试

iOS面试题-每日十道-第六天

2016-06-25  本文已影响2438人  放肆肆肆
个人理解 有误的地方 欢迎小伙伴能给指出

一. 有网络链接的应用中,在取得数据后将json字符串通过框架转为NSDictionary或NSArray,很多人直接使用这些数据来更新UI,说说这样做的缺点,并给出解决办法?

二. id声明的对象有什么特征?

三. 你碰到那些导致程序闪退的原因?如何定位闪退的位置?

1 在设置断点的地方,选Add Exception Breakpoint.之后crash就会停在出错的位置.
2 如果是在测试阶段报错的话,可以在(设置 - 通用 -关于本机 -诊断与用量)里面看到崩溃的堆栈信息.
3如果用RAC的话,访问到已经释放了的内存,和内存警告这2种粗出错的几率高一些

四. 如何实现圆角矩形?有哪些方法可以实现扇形View?

直接修改view的样式,系统提供好的了
view.layer.cornerRadius = 6;
view.layer.masksToBounds = YES;
用layer做就可以了,十分简单.需要库QuartzCore.framework;

画矩形直接利用UIBezierPath给我们封装好的路径方法
(x,y)点决定了矩形左上角的点在哪个位置
(width,height)是矩形的宽度高度
bezierPathWithOvalInRect:CGRectMake(x, y, width, height)
[UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, 100, 100)];

圆角矩形的画法多了一个参数,cornerRadius
cornerRadius它是矩形的圆角半径.
通过圆角矩形可以画一个圆.当矩形是正方形的时候,把圆角半径设为宽度的一半,就是一个圆.
UIBezierPath*path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(50,50,100,100) cornerRadius:50];
扇形:
画扇形的方法为:先画一个圆孤再添加一个一根线到圆心,然后关闭路径.
关闭路径就会自动从路径的终点到路径的起点封闭起下
用填充的话,它会默认做一个封闭路径,从路径的终点到起点.
[path fill];

五. Cocoa Touch提供了哪几种CoreAnimation过渡类型?

Cocoa Touch提供了4中 Core Animation 分别是交叉淡化 推挤 显示和覆盖.

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

不能向编译后得到的类中增加实例变量
因为编译后的类以及注册在runtime中,类结构同中objc_ivar_list实例变量的链表和instance_size实例变量的内存大小已经确定
同时runtime会调用class_setlvarLayout或class_setWeakIvarLayout来处理 strong weak 引用。所以不能向存在的类中添加实例变量

能向运行时创建的的类添加实例变量运行时创建的类是可以添加实例变量,调用 class_addIvar 函数。但是得在调用 objc_allocateClassPair 之后,objc_registerClassPair 之前,原因同上。

七. 请写出你调试解决crash问题的思路及步骤?1)把问题拆分成多个小问题,一步步检验,直到找到问题的根源点

2)程序运行后,查看log信息,找到错误的地方
3)在错误的地方设置断点进行调试,可以加条件断点
4)查看断点运行的信息,进行修改
5).如果是在测试阶段报错的话,可以在(设置-通用-关于本机-诊断与用量)里面看到崩溃的堆栈信息。
6).如果用rac的话,访问到已经释放了的内存,和内存警告这2种出错几率要高些。

八. NSDictionary类使用了哪些数据结构和算法?

NSDictionary 使用Hash表实现Key/Object存储;
Hash表是一种访问速度很快的数据结构,前提是Hash函数设计合理,能够使数据在各个子节点均匀分布,这一点使用NSString对象可以保证,这是文档中的说明:
Classes such as NSString that are part of Foundation have a good hash function.

九. iOS和iPhone做了哪些设计来降低功耗,延长续航时间?作为应用的开发者,又如何避免费电?

十. ARC内存管理原则是什么

永远不写retain,release和autorelease三个关键字就好~这是ARC的基本原则。


纯手动 有地方是个人理解 有误的地方希望大家能给指出 谢谢

如果对您有帮助 希望能给个关注和喜欢~~~
大家面试中遇到的问题 也可以留言分享

上一篇下一篇

猜你喜欢

热点阅读