Coin163

首页 > iOS开发 - 几道面试题

iOS开发 - 几道面试题

2020腾讯云双十一活动,全年最低!!!(领取3500元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1073

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
入口地址https://www.aliyun.com/minisite/goods

相关推荐:iOS高阶面试题之某某音乐的面试题

近期由于工作上的变动,也进行了新一轮iOS的面试。之前面试过很多家企业,一直没有时间总结一把,今天把面试中遇到的一些经典题目列出来,答案则会稍后补充,以供大家学习: 1、ARC中weak和assign区别,分别用在什么场景,weak的实现原理是什么? weak 用来修

这里写图片描述
背景是昨天看到群里有人发面试题,然后一群人就在那里讨论,看完之后我觉得这几道题写的挺好的,所以这里简单的来解释下,首先答案是:对,错,对,错(这个结果应该是对的,不确定的可以自行去查看资料)
1.串行队列Serial Dispatch Queue中的block都在同一个线程里执行,因为这是一个串行队列,串行队列是一个block,队列中有排队执行的任务,每个人物又是一个block,任务对应的block都在队列这个大的block中执行,所以他们都是在同一个block中执行的是正确的。
2.NSArray默认是浅拷贝,默认为copy,是浅拷贝,mutableCopy是深拷贝,这个copy当时群里讨论了许久,使用了copy会对使用对象进行copy,拷贝的是指针,而不是内存地址,copy了就会创建一个新的对象,它和原来的被拷贝对象指针不同,内存地址是一样的,当对拷贝后的对象字符串或者原来的对象字符串进行直接赋值,比如str=@“Hello”;内存地址会改变,指针不变。如果是对copy后的对象进行赋值,原对象地址不变,新的对象会重新分配一块新的内存地址,指针不变。对mutableCopy而言,因为是深拷贝,所以内存地址直接改变,指针也改变。
3对nil对象发送消息是有默认返回值的,返回值根据发送消息的类型而不一样,为0,为NO,或者为空的结构体,也有可能会返回nil的消息,但是一定会有消息返回,在cocoa中的几种模式中有专门应用。
4.KVO回调都是在主线程这句话没错,错在他们是同步执行的,程序中我们用到KVO的地方有很多,然而执行的速度是很快的,并没有发生排队执行的情况,所以说明它的回调是异步执行的,否则主线程必定会出现被卡住的情况,而在实际应用中,是没有的。仔细想想也不可能是同步执行的,用到KVO的地方太多,都排着队执行,程序执行肯定会存在延时。

相关推荐:iOS 面试题小总结

1.面试官往往会问说说多线程吧:GCD  ,NSThread ,NSOperationQueue   答:最常用的是GCD ,GCD它会自动管理线程的生命周期(创建线程,调度任务,销毁线程),不需要我们管理只需要去告诉他干什么就行,它使用的是C语言,面向过程的 涉及到聊个概念:任务、队

以上是博主的个人见解和群里人讨论后的一些见解,细节地方,感兴趣的朋友可以自己去详细分析。

原文

背景是昨天看到群里有人发面试题,然后一群人就在那里讨论,看完之后我觉得这几道题写的挺好的,所以这里简单的来解释下,首先答案是:对,错,对,错(这个结果应该是对的,不确定的可以自行去

------分隔线----------------------------