iOS 面试题 集锦(3)

昨天又看到几个题,感觉容易记混的,下面来干货!!

41 cocoa和 cocoa touch?(表示都听过,就是不知道什么区别。。)
cocoa包含Foundation和AppKit框架,可用于开发Mac OS X系统的应用程序
cocoa touch包含Foundation和UIKit框架,可用于开发iPhone OS 系统的应用程序
Cocoa时Mac OS X的开发环境,cocoa Touch是 Iphone OS的开发环境

42 网络从下往上分为几层?
从下往上:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
IP协议对应网络层,TCP协议对应传输层,HTTP协议对应应用层。
socket则对应TCP/IP协议的封装和应用。也可以说,TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。

43 自动释放池如何实现?
自动释放池以栈的形式实现,当你创建一个新的释放池时,它将被添加到栈顶,当一个对象收发到发送autorelease消息时,它将添加到当前线程的处于栈顶的自动释放池中,当自动释放池被收回的时候,他们从栈中删除并且会给池子里所有对象都做一次release

44 KVO内部实现的原理
(1)KVO是基于runtime机制实现的。
(2)当某个类的对象第一次被观察时,系统就会在运行期间动态的创建该类的一个派生类,在这个派生类中重写基类中任何被观察属性的setter方法。派生类在被重写setter方法中实现类真正的通知机制。(Person - > NSKVONotification Person)

45 Foundation对象与Core Foundation对象有何区别?
Foundation对象是OC的,Core Foundation对象是C对象。

46 block内部的实现原理。
Objective-C是对C语言的扩展,block的实现是基于指针和函数指针。

47 简单描述下对单例模式设计的理解?
节省内存资源,一个应用就一个对象

48 控制器View的生命周期及相关函数是什么?你在开发中是如何使用的?
1、首先判断控制器是否有视图,如果没有就调用loadView方法创建:通过storyBoard或者代码。
2、随后调用viewDidLoad,可以进行下一步的初始化操作,只会被调用一次。
3、在视图显示之前调用viewWillAppear,该函数可以多次调用。
4、视图viewDidAppear
5、在布局变化前后,调用viewWill/DidLayoutSubViews处理相关信息。

49 有些图片加载比较慢怎么处理?你是怎么优化程序的性能的?
①、图片下载放在异步线程。
②、图片下载过程使用占位图片。
③、如果图片比较大,可以使用多线程断点下载。

50 AFNetWorking实现原理。
基于NSURL。采用block的方法出来请求,直接返回的是json,XML数据。AFN直接操作对象是AFHTTPClient,是一个实现了NSCoding和NSCopying协议的NSObject子类。AFGTTPClient是一个封装了一系列操作方法的工具。AFN默认没有封装同步请求,如何开发者需要使用同步请求,需要重写相关方法。(getPath:parameters:failure),对AFHTTPRequestOperation进行同步处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值