面试详解(纯手写个人总结)

————————————————————————————————————————————————————————————————————————————————————————
1.除了MVC 你还熟悉哪儿中设计模式
代理:当一个类的某些功能需要由别的类实现,但是又不确定具体是那个了类实现的
单例:确保程序运行期,某个类只有一份实例 用于进行资源共享
工厂:多余的proxy模式配合 穿件可替代的类
观察者:一般为model层,对controller和View进行通知,不关心睡接收 只负责发布消息
策略:定义算法 封装起来 使他们可以相互替换
2.线程和进程的区别和联系 谈谈多线程
(1)一个线程只能属于一个进程 而一个进程可以有多个线程 至少有一个线程
(2)资源分配 统一进程的所有线程共享该进程的所有资源
(3)处理机 分给线程 既真正在处理机上运行的是线程
3.你再开发中 用到了哪儿些数据存储方式 iOS中常见的方式有哪儿些
(1)归档 (2)NSUserDefault (3)write写入 (4)sqlite数据库
4.arc的程序出现内存泄露怎么办
用ARC,只是编译器帮你管理了何时去release,retain 不用arc就需要自己去手动管理 说到底就是谁去管理的问题
如果实在找不到问题,建议找到泄露的那个对象 将其赋值为nil 因为在arc中 一点对象没有指针指向救护马上释放
5.❤️简述一下iOS应用开发流程
(1)产品经理做需求调研 确定产品需求 编写需求文档
(2)产品人员完成产品原型
(3)产品经理召开会议(产品,UI,开发,测试,服务器)
(4)服务器与客户端成员一起制定接口文档
(5)项目经理指定开发进度,分配任务,预算开发周期
(6)移动客户端开发人员根据UI界面和需求文档 开始编写代码 开发模块上的功能
(7)开发者提交给测试
(8)测试部分完毕,提交给产品经理验收产品
(9)提交到AppStore
——————————————————————————————————————————————————————————————————————————————————————————
1.简述下面列举的.framework的作用
1.CoreData.framework; 数据库
2.CoreLocation.framework 定位
3.MapKet.framework 地图
4.CoreAnimation.framework 动画
5.AddressBook.framework 通讯录
6.AVFoundation.framework 流媒体
7.CFNetwork.framework 网络通讯(套接字)
8.Coretelephony.framework 核心通信框打电话
9.CoreText.framework 图文混排
10.GameKit.framework 实现蓝牙的相互通讯,既是服务器,有时客户端
11.HealthKit.framework 分离数据收集 数据处理和社会化(苹果主推健康数据处理)
12.Securlty.framework 网络安全框架(加密 秘钥)
13.Social.framework 社会化分享(新浪,微信,qq)
14.OpenAL.framework 播放音频的
15.MessageUI.framework 发短信 发邮件
16.NewsstandKit.framework 后台下载,推送
2.简述KVC/KVO他们之间有什么关系
KVC是一种通过字符串去间接操作对象属性的一种机制
假如我们去访问一个对象的属性 porson.age 也可以用 KVC的方式

KVO就是在一个语言框架层面实现的观察者模式 通过KVC的方式去修改属性是, 会主动通知观察者
3.iOS 中frame和bounds的区别
frame和bounds都是UIView的两个属性
frame指的是,该View在父view坐标系的位置和大小(参照点是父坐标系)
bounds指的是 改view再本身坐标系的位置和大小(参照物事本身坐标系)
————————————————————————————————————————————————————————————————————————————————————————————
1.描述AFNetwork作用和用法
常见问题:
1.AFNetwork作用都有哪儿写?
(1)AFNetwork可以将远程的媒体数据类型(NSData)转化为可用的格式,比如json XML 图像和plist
(2)AFURLControllerOperation可以让你完成上传,和下载,处理验证,监控上传和下载进度
(3)AFURLControllerOperation和它的子类继承NSOperation 允许请求被取消,暂停 恢复 和由NSOperationQueue进行管理
(4)AFHttpClient提供了一个方便的网络交换接口 包括身份证验证 是否连接到网络 批量处理操作 查询字符串参数序列化 以及多种鼻癌单的请求。
(5)UIImageView+AFNetwork增加了一个方便方法 来异步加载图片
2.AFNetwork是否支持缓存?
可以,NSURLCache以及其子类提供了很多高级接口,用于处理缓存,如果你想将缓存存储于磁盘 推荐使用SDURLCache
3.如何使用AFNetwork上传一个文件
NSData *imageData = UIImagePNGRepresentation(image);
NSURLRequest * request = [client multipartFromRequestWithMethod:@“POST” path:@“/upload” parameters:nil ConsTructingBodyWithBlock^(id formData){[formData appendpartWithFileData:imageData mine Type:@“image/png” name:@“avatar”]}];
4.如何使用AFNetwork下载一个文件
首先创建一个AFURLConnectionOperation对象 然后再对他的属性outputStream进行处理
operation.outputStream = [NSOutputStram outputStreamToFielAtPath:@“download.zip” append:NO];
5.当应用程序退出时,如何保持持续的请求?
AFURLConnectionOperation有一个叫setShouldExecuteAsBackGroundTaskWithExpirationHandier:的方法,用于处理应用程序进入后 台,进行持续请求
[self setShouldExecuteAsBackGroundTaskWithExpirationHandier^{
//这是个Block
}]
—————————————————————————————————————————————————————————————————————————————————————————————

1.简单描述Controllers之间的传值方式有哪儿几种
(1)属性传值
(2)Block传值
(3)代理传值
(4)通知传值:谁要监听值的变化,谁就注册通知
2.如何理解iOS中的沙盒机制
iOS中的沙盒(SandBox)是一种安全体系,它规定了应用程序只能在为该应用在穿件文件夹内读取文件,不可以访问其他地方的内容,说有非代码文件都保存在这个地方,比如图片,声音,文本,属性列表。
(1)每个应用程序都在自己的沙盒内
(2)不能随意跨越自己的沙盒去访问别的应用程序的沙盒内容
(3)应用程序向外请求火接收数据都需要经过权限的认证
3.简述你对MVC的理解
MVC模式考虑三种对象:model(模型) View(视图对象) Controller(视图控制器对象)
模型对象负责应用程序的定义操作数据的逻辑,视图对象知道如何显示应用程序的模型数据,控制器对象是M与V之间的协作者
————————————————————————————————————————————————————————————————————————————————————————

posted @ 2015-08-20 08:26  YYSheng  阅读(479)  评论(0编辑  收藏  举报