【7】ios面试题-线程网络2剖析

上传人:今*** 文档编号:105872544 上传时间:2019-10-13 格式:DOCX 页数:9 大小:132.99KB
返回 下载 相关 举报
【7】ios面试题-线程网络2剖析_第1页
第1页 / 共9页
【7】ios面试题-线程网络2剖析_第2页
第2页 / 共9页
【7】ios面试题-线程网络2剖析_第3页
第3页 / 共9页
【7】ios面试题-线程网络2剖析_第4页
第4页 / 共9页
【7】ios面试题-线程网络2剖析_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《【7】ios面试题-线程网络2剖析》由会员分享,可在线阅读,更多相关《【7】ios面试题-线程网络2剖析(9页珍藏版)》请在金锄头文库上搜索。

1、1. 多线程都有哪些实现,GCD要注意些什么。三种线程优缺点?(1)NSThread:轻量级的方式(具有很少的规则和惯例,依赖的东西少),比较底层和原始。需要自己手动管理线程的生命周期,同步的时候需要加锁来控制线程执行顺序,会增加系统开销。不推荐使用。(2)NSOperationQueue:一个NSoperation对象可以通过调用start方法执行任务,默认是同步执行;也可以将NSOperation添加到一个NSOperationQueue中执行,这时是异步的。通过这个方式开启线程后,可以中途停止、继续、取消等操作。如果想控制线程执行顺序,可以通过添加依赖完成。优点:不需要关心线程管理,数据

2、同步的事情,可以把精力放在自己需要执行的操作上。对于上传、下载这种复杂的操作,推荐使用。(3)GCD:苹果提供的,异步执行。提高了代码执行效率和多核的利用率,性能更好。对于复杂的不推荐使用,但是简单的提交数据推荐使用。2. 在哪里用过哪些第三方库,在哪获取第三库?读过第三方代码没有?在开发的过程中,用过很多第三方类库,AFNetWorking、SDWebImage、MBProgressHUD、FMDB、EGOTableViewPullRefresh、ShareSDK等。注意:提到的可能面试官都会问到。大多是从Github、CocoaChina地方等下载。第三方类库主要是用它的功能,对于比较优秀

3、的代码自己也读了一下,写的非常棒,比如。(这个时候可以详细介绍一个你最熟悉的第三方类库)3. 多个iphone版本适配?最简单有效的方式是通过autolayout+sizeclass来进行适配的,但是这种方式的缺点需要添加的约束比较多,对于手写的代码非常麻烦。一般手写代码进行布局的时候,会选择第三方类库来做,比如FLKAutoLayout,可以用简单的一句代码完成对一个控件添加的全部约束,非常实用。4. 上拉加载更多,下拉刷新如何实现?用EGOTableViewPullRefresh做的,上拉的时候,从服务器取一组新的数据,加到数组中,刷新界面;下拉的时候,从服务器取数据,更新数组,刷新界面。

4、可以根据自己的理解详细的介绍5.如何在子线程中更新界面,如何让线程延迟执行?多线程编程有一个原则,就是一切和UI有关的操作都必须放到主线程做,子线程只负责事务,数据方面的处理。主界面先加载默认的界面,然后开启子线程去加载数据,加载得到数据之后,通知主线程,在主线程进行界面的更新。子线程是不能直接调用主线程类的更新界面的方法,可以在子线程中通过performSelectorOnMainThread:方法做。self performSelectorOnMainThread:selector(updateUI)withObject:updateData waitUntilDone:YES;6. NS

5、timer影响效率NSTimer是定时器,可以指定从现在开始到未来的某个时刻去执行指定方法,可以执行一次,也可以重复执行。理论上是会在我们期望的时间节点去做期望的事情,但实际上实际触发的时间和期望的可能有一定差距。NSTimer一般和NSRunLoop一起使用,但是NSRunLoop不是线程安全的,所以一般不建议使用。比如程序是多线程的,你的timer只添加在某一个线程的runloop里,因为多线程通常的是分时执行的,所以通过timer设置的触发时间和期待的会有差距。NSTimer会定时刷新,不管将要触发的方法是否有意义。所以在使用的时候要保证NSTimer将要刷新的方法是有意义的。比如制作时

6、钟就可以使用NSTimer。7. 谈谈你对MVC的理解?模型-视图-控制器模式。MVC是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC分层有助于管理复杂的应用程序。MVC模式的应用程序耦合性很低,重用性很高,适合多人共同开发的大型项目。MVC就是用控制器把model与view隔开,也就是model与view之间没有任何交互,是控制器与model、控制器与view之间交互。model 用于封装了应用程序的数据,并定义操控和处理该数据的逻辑和运算。view 是用户能够看到所有的

7、界面上的view。controller 是在应用程序的一个或多个视图对象和一个或多个模型对象之间,充当媒介。1. Model和View永远不能相互通信,只能通过Controller传递。2. Controller可以直接与Model对话(读写调用Model),Model通过Notification和KVO机制与Controller间接通信。3. Controller可以直接与View对话,通过outlet,直接操作View,outlet直接对应到View中的控件,View通过action向Controller报告事件的发生(如用户Touch我了)。Controller是View的直接数据源(数

8、据很可能是Controller从Model中取得并经过加工了)。Controller是View的代理(delegate),以同步View与Controller。MVC 缺点没有明确的定义,分层的时候,有些需要好好考虑。不适合小型项目,因为创建MVC需要花费一定的时间;并且分层之后,会增加结构的复杂性,可能产生过多新的操作,降低运行效率。视图与控制器之间紧密联系,会妨碍他们独立重用;因为视图与模型之间不能直接交互,因此需要多次调用控制器交互,这样视图与模型数据的访问效率比较低。一个登录功能,MVC如何划分登陆的所有界面都放到view中,controller中主要是与view和model交互的代码

9、,比如把那些数据显示在哪个view上,点击登陆按钮跳转到哪个页面等,其余的和所有的数据、业务逻辑等放到model。可以解释的再详细些。8. IOS页面之间有几种传值方式?1. 在AppDelegate里设置全局变量,通过SharedApplication使用。2. 使用文件或者NSUserDefault传递3. 通过单例创建的class传递4. 通过delegate传递5. 通知6. 通过控制器的参数进行传递9. AFN ?AFN功能AFNetworking用于网络数据传输以及网络中多线程的处理。AFN中我们常用的功能有发GET/POST请求,json、plist数据的解析,上传和下载等如何使

10、用AFN?1. 首先需要实例化一个请求管理器对象AFHTTPRequestOperationManager2. 设置请求和返回数据格式(是二进制?json?plist?)3. 如果登陆传参,设置传递的参数,字典(键名为参数名,键值为参数值)4. 发get或post请求,去网络取数据。返回的数据成功和失败分别是在两个块中进行处理。AFN特性1. 登陆传参时,传递字典即可(键名为参数名,键值为参数值)2. 自动到子线程中执行,执行完返回到主线程3. 返回的结果自动序列化为NSDictionary10. 让你做一个类似QQ音乐的东西,怎么做?QQ音乐最核心的功能就是歌曲的播放。播放音频,首先想到可以

11、用AVFoundation框架,来完成播放音乐的主要功能。但是AVFoundation只能播放本地的音乐,不能在线播放。虽然可以先从网络下载资源到本地在播放,但是必须要整首歌都下载完成后才能播放,这样效果并不好。如果想在线播放,可以选择AudioToolbox框架中的音频队列服务Audio Queue Services。音频队列服务可以完成音频的录制和播放。一个音频服务队列Audio Queue有三部分组成:三个缓冲器Buffers:每个缓冲器都是一个存储音频数据的临时仓库。一个缓冲队列Buffer Queue:一个包含音频缓冲器的有序队列。一个回调Callback:一个自定义的队列回调函数。

12、音频播放的流程:将音频读取到缓冲器中,一旦一个缓冲器填充满之后就放到缓冲队列中,然后继续填充其他缓冲器;当开始播放时,则从第一个缓冲器中读取音频进行播放;一旦播放完之后就会触发回调函数,开始播放下一个缓冲器中的音频,同时填充第一个缓冲器放;填充满之后再次放回到缓冲队列。流媒体好的音乐播放器要保证播放的流畅性,一定是边加载边播放,如果做得再好一些,可以用流媒体来做。详细内容后续给大家补充获取歌单,显示在界面这部分主要通过AFN来从网络获取歌曲信息,然后展示在界面上。对于界面展示这部分比较熟悉,做起来难度不大。自己补充分析一下歌曲下载到本地存储歌曲离线下载管理这部分,也很重要。歌曲名称、作者等相关信息可以存储到数据库中,歌曲的源文件以及歌词文件,下载之后存到沙盒中指定的文件夹中。其他其他的设置等功能和其他软件大同小异。可以比照QQ播放器,挑自己熟悉的地方详细的解释说明一下,是如何实现的。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号