iOS面试的总结

iOS面试的总结

ID:42431827

大小:52.50 KB

页数:7页

时间:2019-09-15

iOS面试的总结_第1页
iOS面试的总结_第2页
iOS面试的总结_第3页
iOS面试的总结_第4页
iOS面试的总结_第5页
资源描述:

《iOS面试的总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、精品文档就在这里-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有----------------------------------------------------------------------------------------------------------------------------------------------------------面试的时候出现的各种的总结,实践才是检验结果的真正方法。说法的完全有待吅考证。内存的理解C语言程序的内存

2、分布1.堆:动态内存 2.栈:函数调用/局部变量 3.全局变量/静态变量 4.机器指令OC的内存管理使用了“引用计数”的方式。ARC之前内存需要程序员手动的释放创建的对象,当对象引用的时候计数+1,当计数为0时对象释放,但是ARC出现后系统将会为你管理内存,在ARC环境中只需要明确强引用和弱引用的概念。ARC提供了四种修饰符__strong__weak__unsafe_unretained__autoreleasing(1)变量默认都是__strong修饰,可以理解为只要强引用存在,对象就不会释放,当超过了对象的作用域

3、以及没有强引用时,对象会自动销毁。(2)__weak不持有对象,简单引用,不会阻止对象的销毁,主要是为了防止循环引用出现死循环对象都不释放而引入。(3)__unsafe_unretained,类似weak,但是不会在没有引用的时候自动设置为nil。(4)__autoreleasing用于标识id*的引用参数,或者需要自动释放的返回对象。详细的ARC苹果文档都有说明和代码的测试。iOS对内存的利用水平非常高,所以对于内存程序员需要处理的很好,虽然不能完全阻止内存泄漏,但是越少的内存泄漏才能使得APP的安全和运行更好,更流

4、畅。2.多线程iOS中多线程使用并不复杂,关键是如何控制各个线程的执行顺序、处理好资源竞争问题。进程:在内存中占用一定的空间 线程:加载数据UI等的任务模块,在加载数据时出现了耗时的任务时,为了不影响用户体验,衍生出来了多线程,主线程用来处理主体的展示和交互事????件,子线程处理耗时的任务。三种常见的创建多线程的方式(1)NSThread:这套方案是经过苹果封装后的,并且完全面向对象的。所以你可以直接操控线程对象,非常直观和方便。但是,它的生命周期还是需要我们手动管理,所以这套方案也是偶尔用用,比如[NSThread

5、currentThread],它可以获取当前线程类,你就可以知道当前线程的各种属xing,用于调试十分方便。(2)NSOperation/NSOperationQueue创建NSOperation添加到NSOperationQueue优点:更加面向对象,可以控制最大并发数即可实现同步和异步;添加任务之间的依赖控制执行顺序。(3)---------------------------------------------------------精品文档------------------------------------

6、---------------------------------精品文档就在这里-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有----------------------------------------------------------------------------------------------------------------------------------------------------------?1dispatch_async(di

7、spatch_queue_t queue,dispatch_block_t block);async表明异步运行,block代表的是你要做的事情,queue则是你把任务交给谁来处理了. 之所以程序中会用到多线程是因为程序往往会需要读取数据,然后更新UI.为了良好的用户体验,读取数据的操作会倾向于在后台运行,这样以避免阻塞主线程.三种queue来处理。  1.Mainqueue:  顾名思义,运行在主线程,由dispatch_get_main_queue获得.和ui相关的就要使用MainQueue.  2.Serialq

8、uque(privatedispatchqueue)  每次运行一个任务,可以添加多个,执行次序FIFO.通常是指程序员生成的.  3.Concurrentqueue(globaldispatchqueue):可以同时运行多个任务,每个任务的启动时间是按照加入queue的顺序,结束的顺序依赖各自的任务.使用dispatch_get

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

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

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