iOS之面试笔记(一)

以下的这些问题都是些本人在之前找工作的时候遇到的面试问题,我就做了些整理,大概如下,供大家参考下。

一 (这是个直播类的公司的面试问题)

1、KVC和KVO区别
2、内存管理机制是什么样的?
3、轮播图片的实现方法
4、tableview的代理方法有哪些
5、运行时的机制
6、tableview的复用的原理?
7、图文混排的做法
8、响应链是什么?
9、针对项目,假如在scrollview上加scrollview或tableview,只让下面的滑动
10、多线程阐述
11、git命令 举个例。
12、bilibili首页的分析

二(这是个做金融类的公司)

1、自动布局,类似微信的朋友圈
2、轮播图片的实现方法
3、推送原理
4、上架流程
5、SDWebImage的内部实现
6、缓存技术 大概阐述下。
7、瀑布流,怎么检测每列最小的y值
8、自己实现一个tableview和瀑布流
9、自己电脑生成的那个钥匙串有什么用处(生成证书的时候用的)
10、推送的时候,服务器发送的令牌,包含着什么内容
11、轮播图片的时候,假如有定时器,怎么让这个轮播顺畅执行
12、nstimer和一个什么东西的区别,忘了名字了!(忽略吧)
13、MVC模式简要说明
14、XML解析的原理 ,有哪些三方的库。
15、多线程的使用场景
16、开发中遇到的最大问题
17、是否对数据库了解,fmdb 、sqlite3
18、git和SVN的命令 举例

三 (这是个外包公司的问题,问题里面全是坑)

1.在父视图上[UIButton new]时,给左上一个15的约束,会有什么情况发生。
答:由于新建的button没有放在父视图,所以会引发崩溃。
2.用masonry写个离父视图边距15的纯代码
答:make.left.mas_equalTo(self.view.mas_left).offset(15);
3.在父视图上添加一个scrollView 后加一个button或label,怎么添加约束
4.怎么处理网络缓存
5.怎么处理图片缓存,怎么删除缓存
6.AFN2.0和3.0的manager有什么区别(单例和非单例的区别),其他的还有什么区别。
7.SDWebImage的缓存策略,对于图片怎么处理的,以及api接口是哪一个。
sd_setImageWithUrl:(NSUrl *)url placeholder:(UIImage *)image;
8.热修复的原理
9.代码冲突怎么查找,怎么解决,
答:在代码中找到>>>>>>>>表示冲突的开始位置。
找到<<<<<<<表示代码冲突的结束位置。
此外还有=========
10.数据库sql语句的添加(新增)字段怎么实现。
答:
添加字段:
alter table 表名 add 字段名 类型
删除字段:
alter table 表名 drop column 字段名
11.最新的xcode版本(他觉得我没有开发过iOS 我去。。。)
12.怎么实现最大并发数
NSOPerationQueue的类

// 最好设置最大并发数为2~3
self.queue.maxConcurrentOperationCount = 3;

13.除此之外问了很多api接口的代码。
14.处理block需要注意的有那些?
答:(1)在使用block前需要对block指针做判空处理。
(2)在MRC的编译环境下,block如果作为成员参数要copy一下将栈上的block拷贝到堆上
(3)在block使用之后要对,block指针做赋空值处理,如果是MRC的编译环境下,要先release掉block对象。
(4)使用方将self或成员变量加入block之前要先将self变为__weak
(5)在多线程环境下(block中的weakSelf有可能被析构的情况下),需要先将self转为strong指针,避免在运行到某个关键步骤时self对象被析构。
第四、第五条合起来有个名词叫weak–strong dance,
参考:http://www.cnblogs.com/biosli/p/block_usage.html

四(也是半外包类的公司)

1.缓存的处理:可以用字典进行处理。
2.对于缓存所占内存过高的时候的处理办法:一般就是设置一个上限值,例如100M,加入缓存达到上限值的话,就可以删除一些没有用的缓存,来降低缓存所占的内存。
3.运行时原理以及消息转发
4.KVO的底层实现原理:就是对对象进行一个拷贝,生成一个全新的对象,对新的对象的属性的进行观测,观测到新旧两个对象的属性值的变化,其中在类的对象中的isa指针会指向类。
5.深拷贝和浅拷贝
6.用socket来封装CFNetworking的实现原理
7.HTTP和TCP/IP的为什么叫短连接和长连接:对于这两个协议来说都是流服务,HTTP是在建立了流服务的连接后,会维持一段时间自动断开连接,且下次连接还需要进行一次完成流程的连接,这是不会有记忆功能的,所以是可靠的。但是TCP/IP的连接是就是在连接完成后,不会自动断开连接,仍然保持连接,所以称为长连接。
8.对于id类型为啥是所以类型的父类:由于是id类型来源NSObject的对象,而其他的类都是继承自NSObject的,所以其他的对象是继承id。
9.对于id来创建对象,为什么不加 * :由于在NSObject创建对象的时候就会有个了,而id只是对其的进一步的封装,所以不用在id再加上了。
10.为什么在tableView上添加一个轮播图片,在下滑上拉的时候,轮播图片停止滚动:原因就是轮播图片加在当前的runloop会自动的停掉。所以滑动界面的时候会使得轮播图片停止滚动,这时需要把轮播图片添加到其他的runLoop中去,这样就算有滑动页面也不会使得轮播图片停止滚动。
11.GCD中的mainQueue和globalQueue有什么区别:mainqueue的话是主队列,这是同步执行的,而globalQueue是可以异步的执行任务的。
12.解决手势冲突的代码:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    // 输出点击的view的类名
    // 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件
    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
        return NO;
    }
    return YES;
}
 [NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]

判断这个手势是否添加到相应的控件上。
13.FMDB在多线程中的问题:FMDB是支持多线程的,需要用到的是FMDatabaseQueue,[FMDatabaseQueue databaseQueueWithPath:path],然后可以处理多线程的问题,但是在对于多线程安全问题,在同时操作数据库的时候需要异步的执行inDataBase或inTransaction来进行。

1.怎么上传图片到服务器,详细流程。
2.事件传递,
3.c指针问题
4.自定义控件怎么传递事件给控制器,几种方式。
5.mvc
6.cell上显示网络数据,网络很慢,cell进了复用池怎么搞
7.你在项目中怎么处理ipv6的问题的
通过getaddrinfo转换ipv4得到ipv6地址(这里我也被坑过了低版本的系统转换不了ipv6,想测试只能升级系统),获得ipv6地址后,可以判断地址字符串是否用“:” 来确定使用哪一种socket的通讯方式,判断方法:std::strdchr(const char* value, const char* subStr),如果是NULL,则使用ipv4 socket连接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,738评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,377评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,774评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,032评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,015评论 5 361
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,239评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,724评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,374评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,508评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,410评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,457评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,132评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,733评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,804评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,022评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,515评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,116评论 2 341

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,115评论 29 470
  • 1.1 谈一谈GCD和NSOperation的区别? 首先二者都是多线程相关的概念,当然在使用中也是根据不同情境进...
    John_LS阅读 1,306评论 0 12
  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 2,341评论 0 35
  • 多线程、特别是NSOperation 和 GCD 的内部原理。运行时机制的原理和运用场景。SDWebImage的原...
    LZM轮回阅读 2,000评论 0 12
  • 门前老树长新芽,院里树木又开花。春夏秋冬,27载不禁感叹时间都去哪了? 1997年我6岁,腊月里的某一天阳光灿烂。...
    书绪阅读 314评论 0 3