1 / 53
文档名称:

iOS面试及答案.docx

格式:docx   大小:253KB   页数:53页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

iOS面试及答案.docx

上传人:w447750 2018/1/12 文件大小:253 KB

下载得到文件列表

iOS面试及答案.docx

相关文档

文档介绍

文档介绍:史上最全的iOS面试题及答案
 
 
iOS面试小贴士
———————————————回答好下面的足够了-------------------------------------
多线程、特别是NSOperation 和 GCD 的内部原理。
运行时机制的原理和运用场景。
SDWebImage的原理。实现机制。如何解决TableView卡的问题。
block和代理的,通知的区别。block的用法需要注意些什么。
strong,weak,retain,assign,copy nomatic 等的区别。
设计模式,mvc,单利,工厂,代理等的应用场景。
单利的写法。在单利中创建数组应该注意些什么。
NSString 的时候用copy和strong的区别。
响应值链。
NSTimer 在子线程中应该手动创建NSRunLoop ,否则不能循环执行。
UIScrollView和NSTimer组合做循环广告图轮播的时候有一个属性可以控制当上下滚动tableview的时候广告轮播图依然正常滚动。
Xcode最新的自动布局。。。这个很多公司都用。尽量自学下。
git ,和svn的用法。。。git的几个命令简单的记下。。。
友盟报错可以查到具体某一行的错误,原理是什么。
Instrument  可以检测电池的耗电量、和内存的消耗。的用法。
动画CABaseAnimation CAKeyAni….  CATrans…..  CAGoup….    等熟悉。。
ARC的原理。
自己写过什么自定义控件就最好了。。
 
———————————————回答好上面的足够了-------------------------------------
 
__block和__weak修饰符的区别其实是挺明显的: 
,可以修饰对象,还可以修饰基本数据类型。 
,也只能修饰对象(NSString),不能修饰基本数据类型(int)。 
,__weak不可以。 
 
 tableView 滑动卡的问题主要是因为:从缓存中或者是从本地读取图片给UIImage的时候耗费的时间。需要把下面的两句话放到子线程里面:
NSData *imgData = [NSData dataWithContentsOfURL:[NSURL URLWithString:]]; //得到图像数据  
        UIImage *image = [UIImage imageWithData:imgData];  
 
把UIImage赋值给图片的时候在主线程。
子线程不能更新UI 所有的UI跟新都是主线程执行了。手指滑动屏幕了。或者屏幕的某个方法执行了。
 
子线程里面加入NSTimer 的时候需要手动添加NSRunloop   否则不能循环。
 
单利里面添加 NSMutableArray 的时候,防止多个地方对它同时便利和修改的话,需要加原子属性。并且用strong,,,并且写一个遍历和修改的方法。加上锁。  Lock   UnLock    
 
    __weak ViewController*  weakSelf = self;
GCD里面用__weak 防止内存释放不了,循环引用。
 
 
 
 二、SDWebImage内部实现过程
入口 setImageWithURL:placeholderImage:options: 会先把 placeholderImage 显示,然后 SDWebImageManager 根据 URL 开始处理图片。
进入 SDWebImageManager-downloadWithURL:delegate:options:userInfo:,交给 SDImageCache 从缓存查找图片是否已经下载 queryDiskCacheForKey:delegate:userInfo:.
先从内存图片缓存查找是否有图片,如果内存中已经有图片缓存,SDImageCacheDelegate 回调 imageCache:didFindImage:forKey:userInfo: 到 SDWebImageManager。
SDWebImageManagerDelegate 回调 webImageManager:didFinishWithImage: 到 UIImageView+WebCache 等前端展示图片。
如果内存缓存中没有,生成 NSInvocationOperation 添加到队列开始从硬盘查找图片是否