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

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

ID:30782801

大小:54.00 KB

页数:9页

时间:2019-01-03

【7】ios面试题-线程网络2_第1页
【7】ios面试题-线程网络2_第2页
【7】ios面试题-线程网络2_第3页
【7】ios面试题-线程网络2_第4页
【7】ios面试题-线程网络2_第5页
资源描述:

《【7】ios面试题-线程网络2》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

2、序,可以通过添加依赖完成。优点:不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上。对于上传、下载这种复杂的操作,推荐使用。(3)GCD:苹果提供的,异步执行。提高了代码执行效率和多核的利用率,性能更好。对于复杂的不推荐使用,但是简单的提交数据推荐使用。1.在哪里用过哪些第三方库,在哪获取第三库?读过第三方代码没有?在开发的过程中,用过很多第三方类库,AFNetWorking.SDWeblmage、MBProgressHUD、FMDB、EGOTableViewPullRefresh.ShareSDK等。注意:提到的可

3、能面试官都会问到。大多是从Github、CocoaChina地方等下载。第三方类库主要是用它的功能,对于比较优秀的代码自己也读了一下,写的非常棒,比如。。。(这个时候可以详细介绍一个你最熟悉的第三方类库)2.多个iphone版本适配?最简单有效的方式是通过autolayout+sizeclass来进行适配的,但是这种方式的缺点需要添加的约束比较多,对于手写的代码非常麻烦。一般手写代码进行布局的时候,会选择第三方类库来做,比如FLKAutoLayout,可以用简单的一句代码完成对一个控件添加的全部约束,非常实用。1.上拉加载更多,下拉刷新

4、如何实现?用EGOTableViewPullRefresh做的,上拉的时候,从服务器取一组新的数据,加到数组中,刷新界面;下拉的时候,从服务器取数据,更新数组,刷新界面。可以根据自己的理解详细的介绍5•如何在子线程中更新界面,如何让线程延迟执行?多线程编程有一个原则,就是一切和UI有关的操作都必须放到主线程做,子线程只负责事务,数据方面的处理。主界面先加载默认的界面,然后开启子线程去加载数据,加载得到数据之后,通知主线程,在主线程进行界面的更新。子线程是不能直接调用主线程类的更新界面的方法,可以在子线程中通过performSelecto

5、rOnMainThread:方法做。[selfperformSelectorOnMainThread:@selector(updateUI)withObject:updateDatawaitUntilDone:YES];6.NStimer影响效率NSTimer是定时器,可以指定从现在开始到未来的某个时刻去执行指定方法,可以执行一次,也可以重复执行。理论上是会在我们期望的时间节点去做期望的事情,但实际上实际触发的时间和期望的可能有一定差距。NSTimer—般和NSRunLoop—起使用,但是NSRunLoop不是线程安全的,所以一般不建议

6、使用。比如程序是多线程的,你的timer•只添加在某一个线程的runloop里,因为多线程通常的是分时执行的,所以通过timer设置的触发时间和期待的会有差距。NSTimer^定时刷新,不管将要触发的方法是否有意义。所以在使用的时候要保证NSTimer将要刷新的方法是有意义的。比如制作时钟就可以使用NSTimero6.谈谈你对MVC的理解?模型-视图-控制器模式。MVC是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC

7、分层有助于管理复杂的应用程序。MVC模式的应用程序耦合性很低,重用性很高,适合多人共同开发的大型项目。MVC就是用控制器把model与view隔开,也就是model与view之间没有任何交互,是控制器与modeL控制器与view之间交互。model用于封装了应用程序的数据,并定义操控和处理该数据的逻辑和运算。view是用户能够看到所有的界面上的viewocontroller是在应用程序的一个或多个视图对象和一个或多个模型对象之间,充当媒介。1.Model和View永远不能相互通信,只能通过Controller传递。2.Controlle

8、r可以直接与Model对话(读写调用Model),Model通过Notification和KVO机制与Controller间接通信。3.Controller可以直接与View对话,通过outlet,直接操作

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。