iOS 面试题 (四)

  1. 什么是序列化和反序列化,可以用来做什么?如何在OC中实现复杂对象的存储?
     把对象转换为字节序列的过程称为对象的序列化
     把字节序列恢复为对象的过程称为对象的反序列化
     可以用来将对象写到文件或者数据库里,并且可以读取出来 ;
     遵循NSCoding协议,来实现复杂对象的存储
     实现该协议后就可以对其进行打包或者解包,然后转化为NSData

2   写一个标准宏MIN,这个宏输入两个参数并返回较小的一个?
 #define MIN(A,B) ((A) <= (B)?(A) : (B))

   延展问题:写宏的时候要注意些什么问题呢?
<span style="font-size:18px;">  函数宏后面的参数都要用括号单独括起来,函数名大写</span>
<span style="font-size:18px;">  #define A 20</span>

3   iphone os有没有垃圾回收机制?简单阐述一下OC内存管理。
   没有垃圾回收机制      OC中内存管理机制是引用计数的增减,returnCount为0时释放内存 

4   简述应用程序按Home键进入后台时的生命周期,以及从后台回到前台时的生命周期?
   启动程序

lifeCycle[40428:11303] willFinishLaunchingWithOptions
lifeCycle[40428:11303] didFinishLaunchingWithOptions
lifeCycle[40428:11303] applicationDidBecomeActive

按下home键 

lifeCycle[40428:11303] applicationWillResignActive
lifeCycle[40428:11303] applicationDidEnterBackground

执行的方法是- (void) applicationWillResignAction:(UIApplication *)application;

                 -(void)applicationDidEnterBackground:(UIApplication *)application;

双击home键,再打开程序

lifeCycle[40428:11303] applicationWillEnterForeground
lifeCycle[40428:11303] applicationDidBecomeActive

执行的方法是  - (void)applicationWillEnterForeground:(UIApplication *)application

                     -(void)applicationDidBecomeAction:(UIApplication *)application;



5  ViewController 的 alloc,loadView, viewDidLoad,viewWillAppear,viewDidUnload,dealloc、init分别是在什么时候调用的?在自定义ViewController的时候这几个函数里面应该做什么工作?

int 在初始化实例对象时调用

初始化viewController本身;

alloc  申请内存时调用

为viewController申请内存空间;

loadView 在每次访问UIViewController的view(比如 controller.view self.view)而且view为nil,loadView方法会被调用。不要直接调用该方法

如果手工维护views,必须重载重写该方法

如果使用IB维护views,必须不能重载重写该方法

这个方法就是给我们自定义UIViewController的view 还有IB构建view用的;

viewDidLoad  重载重写该方法进一步定制view

在iPhone OS 3.0及之后的版本中,还应该重载重写viewDidUnload来释放对view的任何索引

viewDidLoad后调用数据Model;

viewWillAppear 视图将要出现的时候调用

做数据刷新等工作;

viewDidUnload 在发出内存警告并且view被释放的时候调用  iOS6 中废除了  之后收到内存警告在下面的方法中进行处理

didReceiveMemoryWarning 当应用程序的内存使用接近系统最大的内存使用时,应用程序向系统发送警告;这时系统会调用方法向所有的viewController发送内存警告 可在这个方法里释放界面元素相关的资源,将相关的实例都赋值nil

dealloc 在ViewController被释放的时候调用

销毁ViewController


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值