7IOS面试题线程网络2Word文档格式.docx

上传人:b****1 文档编号:15339283 上传时间:2022-10-29 格式:DOCX 页数:5 大小:18.64KB
下载 相关 举报
7IOS面试题线程网络2Word文档格式.docx_第1页
第1页 / 共5页
7IOS面试题线程网络2Word文档格式.docx_第2页
第2页 / 共5页
7IOS面试题线程网络2Word文档格式.docx_第3页
第3页 / 共5页
7IOS面试题线程网络2Word文档格式.docx_第4页
第4页 / 共5页
7IOS面试题线程网络2Word文档格式.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

7IOS面试题线程网络2Word文档格式.docx

《7IOS面试题线程网络2Word文档格式.docx》由会员分享,可在线阅读,更多相关《7IOS面试题线程网络2Word文档格式.docx(5页珍藏版)》请在冰豆网上搜索。

7IOS面试题线程网络2Word文档格式.docx

不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上。

对于上传、下载这种复杂的操作,推荐使用。

(3)GCD:

苹果提供的,异步执行。

提高了代码执行效率和多核的利用率,性能更好。

对于复杂的不推荐使用,但是简单的提交数据推荐使用。

2.在哪里用过哪些第三方库,在哪获取第三库?

读过第三方代码没有?

在开发的过程中,用过很多第三方类库,AFNetWorking、SDWebImage、MBProgressHUD、FMDB、EGOTableViewPullRefresh、ShareSDK等。

注意:

提到的可能面试官都会问到。

大多是从Github、CocoaChina地方等下载。

第三方类库主要是用它的功能,对于比较优秀的代码自己也读了一下,写的非常棒,比如。

(这个时候可以详细介绍一个你最熟悉的第三方类库)

3.多个iphone版本适配?

最简单有效的方式是通过autolayout+sizeclass来进行适配的,但是这种方式的缺点需要添加的约束比较多,对于手写的代码非常麻烦。

一般手写代码进行布局的时候,会选择第三方类库来做,比如FLKAutoLayout,可以用简单的一句代码完成对一个控件添加的全部约束,非常实用。

4.上拉加载更多,下拉刷新如何实现?

用EGOTableViewPullRefresh做的,上拉的时候,从服务器取一组新的数据,加到数组中,刷新界面;

下拉的时候,从服务器取数据,更新数组,刷新界面。

可以根据自己的理解详细的介绍

5.如何在子线程中更新界面,如何让线程延迟执行?

多线程编程有一个原则,就是一切和UI有关的操作都必须放到主线程做,子线程只负责事务,数据方面的处理。

主界面先加载默认的界面,然后开启子线程去加载数据,加载得到数据之后,通知主线程,在主线程进行界面的更新。

子线程是不能直接调用主线程类的更新界面的方法,可以在子线程中通过performSelectorOnMainThread:

方法做。

[selfperformSelectorOnMainThread:

@selector(updateUI)withObject:

updateDatawaitUntilDone:

YES];

6.NStimer影响效率

NSTimer是定时器,可以指定从现在开始到未来的某个时刻去执行指定方法,可以执行一次,也可以重复执行。

理论上是会在我们期望的时间节点去做期望的事情,但实际上实际触发的时间和期望的可能有一定差距。

NSTimer一般和NSRunLoop一起使用,但是NSRunLoop不是线程安全的,所以一般不建议使用。

比如程序是多线程的,你的timer只添加在某一个线程的runloop里,因为多线程通常的是分时执行的,所以通过timer设置的触发时间和期待的会有差距。

NSTimer会定时刷新,不管将要触发的方法是否有意义。

所以在使用的时候要保证NSTimer将要刷新的方法是有意义的。

比如制作时钟就可以使用NSTimer。

7.谈谈你对MVC的理解?

模型-视图-控制器模式。

MVC是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

MVC分层有助于管理复杂的应用程序。

MVC模式的应用程序耦合性很低,重用性很高,适合多人共同开发的大型项目。

MVC就是用控制器把model与view隔开,也就是model与view之间没有任何交互,是控制器与model、控制器与view之间交互。

model用于封装了应用程序的数据,并定义操控和处理该数据的逻辑和运算。

view是用户能够看到所有的界面上的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的直接数据源(数据很可能是Controller从Model中取得并经过加工了)。

Controller是View的代理(delegate),以同步View与Controller。

MVC缺点

没有明确的定义,分层的时候,有些需要好好考虑。

不适合小型项目,因为创建MVC需要花费一定的时间;

并且分层之后,会增加结构的复杂性,可能产生过多新的操作,降低运行效率。

视图与控制器之间紧密联系,会妨碍他们独立重用;

因为视图与模型之间不能直接交互,因此需要多次调用控制器交互,这样视图与模型数据的访问效率比较低。

一个登录功能,MVC如何划分

登陆的所有界面都放到view中,controller中主要是与view和model交互的代码,比如把那些数据显示在哪个view上,点击登陆按钮跳转到哪个页面等,其余的和所有的数据、业务逻辑等放到model。

可以解释的再详细些。

8.IOS页面之间有几种传值方式?

1.在AppDelegate里设置全局变量,通过SharedApplication使用。

2.使用文件或者NSUserDefault传递

3.通过单例创建的class传递

4.通过delegate传递

5.通知

6.通过控制器的参数进行传递

9.AFN?

AFN功能

AFNetworking用于网络数据传输以及网络中多线程的处理。

AFN中我们常用的功能有发GET/POST请求,json、plist数据的解析,上传和下载等…

如何使用AFN?

1.首先需要实例化一个请求管理器对象AFHTTPRequestOperationManager

2.设置请求和返回数据格式(是二进制?

json?

plist?

3.如果登陆传参,设置传递的参数,字典(键名为参数名,键值为参数值)

4.发get或post请求,去网络取数据。

返回的数据成功和失败分别是在两个块中进行处理。

AFN特性

1.登陆传参时,传递字典即可(键名为参数名,键值为参数值)

2.自动到子线程中执行,执行完返回到主线程

3.返回的结果自动序列化为NSDictionary

 

10.让你做一个类似QQ音乐的东西,怎么做?

<

一>

QQ音乐最核心的功能就是歌曲的播放。

播放音频,首先想到可以用AVFoundation框架,来完成播放音乐的主要功能。

但是AVFoundation只能播放本地的音乐,不能在线播放。

虽然可以先从网络下载资源到本地在播放,但是必须要整首歌都下载完成后才能播放,这样效果并不好。

如果想在线播放,可以选择AudioToolbox框架中的音频队列服务AudioQueueServices。

音频队列服务可以完成音频的录制和播放。

一个音频服务队列AudioQueue有三部分组成:

三个缓冲器Buffers:

每个缓冲器都是一个存储音频数据的临时仓库。

一个缓冲队列BufferQueue:

一个包含音频缓冲器的有序队列。

一个回调Callback:

一个自定义的队列回调函数。

音频播放的流程:

将音频读取到缓冲器中,一旦一个缓冲器填充满之后就放到缓冲队列中,然后继续填充其他缓冲器;

当开始播放时,则从第一个缓冲器中读取音频进行播放;

一旦播放完之后就会触发回调函数,开始播放下一个缓冲器中的音频,同时填充第一个缓冲器放;

填充满之后再次放回到缓冲队列。

流媒体

好的音乐播放器要保证播放的流畅性,一定是边加载边播放,如果做得再好一些,可以用流媒体来做。

详细内容后续给大家补充…

二>

获取歌单,显示在界面

这部分主要通过AFN来从网络获取歌曲信息,然后展示在界面上。

对于界面展示这部分比较熟悉,做起来难度不大。

自己补充分析一下…

三>

歌曲下载到本地存储

歌曲离线下载管理这部分,也很重要。

歌曲名称、作者等相关信息可以存储到数据库中,歌曲的源文件以及歌词文件,下载之后存到沙盒中指定的文件夹中。

四>

其他

其他的设置等功能和其他软件大同小异。

可以比照QQ播放器,挑自己熟悉的地方详细的解释说明一下,是如何实现的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1