iOS_小蟹专题iOS精品文章-面试Swift初体验

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

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

一. Notification和KVO有什么不同?KVO在ObjC中是怎么实现的?

KVO:只能监听属性值的变化,而且有一定的弊端;

二. UIViewController类中didReceiveMemoryWarning默认的操作是什么?

当程序接到内存警告时View Controller将会收到这个消息:didReceiveMemoryWarning
从iOS3.0开始,不需要重载这个函数,把释放内存的代码放到viewDidUnload中去。
这个函数的默认实现是:检查controller是否可以安全地释放它的view(这里view指的是controller的view属性),比如view本身没有superview并且可以被很容易地重建(从nib或者loadView函数)。
如果view可以被释放,那么这个函数释放view并调用viewDidUnload。
你可以重载这个函数来释放controller中使用的其他内存。但要记得调用这个函数的super实现来允许父类(一般是UIVIewController)释放view。
如果你的ViewController保存着view的子view的引用,那么,在早期的iOS版本中,你应该在这个函数中来释放这些引用。而在iOS3.0或更高版本中,你应该在viewDidUnload中释放这些引用。

三. 存放数字用什么类型?存放CGRect用什么类?

NSNumber存放数字,NSValue可以存放CGrect

四. 什么是沙箱模型

沙箱模型就是指iOS的每一个程序对应到APP自己的一个目录,这个目录只有这个应用有读写权限,其他任何APP都没有这个目录的读写权限。这个APP对应的这个目录,就好比是这个app的沙箱。
沙箱的作用就是保证APP数据的安全性,防止恶意软件、病毒等窃取信息。

五. 简述HTTP通信中的阻塞与非阻塞方式

阻塞模式和非阻塞模式的主要区别在于无请求来到时,阻塞模式会一直停在接收函数即accep函数,直到有请求到来才会继续向下进行处理。
而非阻塞模式下,运行接收函数,如果有请求,则会接收请求,如果无请求,会返回一个负值,并继续向下运行。一般来说,使用阻塞模式
的程序比较多,因为阻塞模式是由内核保障等待请求的,当他阻塞时不占用系统资源,而非阻塞模式需要我们人工轮询,占用资源较多。
另外,阻塞模式可以使用select函数设置超时时间,具体可以参考相关书籍。

六. HTTP报文中Content-type有和作用

在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息

七. 如何用css实现文字阴影

CSS中有两种阴影效果,一种是DropShadow(投影),另一种是Shadow(阴影).
(1)DropShadow
语法

 {FILTER:DropShadow(Color=color,OffX=offX,OffY=offY,Positive=positive)}

Color 代表投影的颜色,格式为“#RRGGBB”
OffX 和 OffY 代表x和y方向的投影偏移量。必须用整数值,正数代表x轴的右方向和y轴的下方向。负值相反。
Positive 参数是一个布尔值。值为true(非0),那么就为任何的非透明像素建立可见的投影。如果值为false(0),那么就为
透明的像素部分建立可见的投影。
(2)Shadow

语法

   {FILTER:Shadow(Color=color,Direction=direction)}

Color 代表阴影的颜色,格式为“#RRGGBB”
Direction是设置投影的方向,按照顺时针方向进行,0度代表垂直向上,然后每45度为一个单位。默认值是向左的270度。共8个方向。

八. NSTimer是否是多线程的?使用时是否要加同步锁?

不是,只能加到RunLoop中特定模式下才能工作;不需要,因为它只在单一线程工作

九. main函数执行之前和执行之后,有可能分别会执行什么代码

十. 父类未实现的delegate是否可以由子类实现

可以,父类遵守的协议,子类也会继承这个协议


纯手动 有地方是个人理解 有误的地方希望大家能给指出 谢谢
如果对您有帮助 希望能给个关注和喜欢~~~
大家面试中遇到的问题 也可以留言分享
有兴趣的小伙伴可以关注文集

上一篇 下一篇

猜你喜欢

热点阅读