美文网首页
一次面试题总结2018-12-19

一次面试题总结2018-12-19

作者: 伪装C | 来源:发表于2018-12-20 16:11 被阅读0次

1.nsstring使用strong还是copy?有什么区别

当原字符是不可变字符时,使用strong和copy是一样的,都是指向同一内存地址,Copy只是做了次浅拷贝

当原字符是可变字符时,使用copy则是深拷贝,产生了一个新的对象,而copy属性的对象指向这个新对象,并且copy的是NSString类型,不可变

2.NSTimer准确吗,不准确还有什么方法实现

NSTimer不准确,因为Timer添加到RunLoop上执行,而RunLoop需要执行的操作很多,如source timer observer,会导致时间的偏差

我们可以使用GCD定时器dispatch_time,不会受RunLoop影响

3.runtime如何解决数组越界问题

OC动态语言特性,利用RunTime在运行时对NSArray类中objectAtIndex方法进行方法交换,在自己实现的方法中进行判断再调用系统方法

4.GCD和NSOperation的区别

GCD是基于c语言的底层API,NSOperation则是oc类,NSOperation是对GCD的封装

GCD:结合block使用,代码简洁明了

NSOperation:具有更多的函数可调用,可设置线程优先级,最大并发数,控制线程的取消,监听线程状态

5.GCD如何控制线程的并发数量

for循环创建线程中可以设置信号量dispatch_semaphore_t的个数dispatch_semaphore_create(10)(10就是你想要的并发线程数),超过最大线程数时dispatch_semaphore_wait等待,线程执行完成时dispatch_semaphore_signal来增加信号量

6.KVC和KVO的区别

KVC:key-value-coding 键值编码

KVO:key-value-observer 键值监听 基于KVC的实现,只有当set值时才可以监听到值得改变

7.你项目中什么地方用到了runtime

系统类的方法扩展,属性关联,方法交换全局判断等

8.SEL和IMP区别,在内存中如何关联映射

SEL:存储方法的名字 并没有方法的实现

IMP:则是存储着方法实现函数的地址

二者关联:通过runtime中Dispatch_table指明二者联系,二者都存在objc_method*Method结构体中

9.一个线程可以创建几个runloop,你项目中什么地方使用到runloop

一个线程关联一个RunLoop,主线程默认开启RunLoop,其他线程需手动开启

项目中使用RunLoop,NSTimer中会创建runloop, AFNetWorking2.0会创建常驻线程

10.apple APNS原理

首先要先像APNS服务器注册:

1.Device连接APNs服务器并携带设备序列号

2.连接成功,APNs经过打包和处理产生device_token并返回给注册的Device

3.Device携带获取的device_token向我们自己的应用服务器注册

4.完成需要被推送的Device在APNs服务器和我们自己的应用服务器注册

推送过程如下:

1.首先,安装了具有推送功能的应用,我们的设备在有网络的情况下会连接苹果推送服务器,连接过程中,APNS会验证device_token,连接成功后维持一个长连接;

2.Provider(我们自己的服务器)收到需要被推送的消息并结合被推送设备的device_token一起打包发送给APNS服务器;

3.APNS服务器将推送信息推送给指定device_token的设备;

4.设备收到推送消息后通知我们的应用程序并显示和提示用户(声音、弹出框)

11.YYModel实现原理

runtime Coding

YYModel source analyze

12.delegate用什么修饰,用assign会出现什么问题

delegate使用weak修饰,为了不产生循环引用,使用assign会导致野指针

13.block会出现循环引用怎么解决,__strong何时使用

block当互相持有时会产生循环引用,利用_ _weak来修饰block中引用的类,block中是延时执行时,可能被引用的类被释放,则会程序crash,这时需要在block中对引用的类进行_ _strong修饰强引用一下,等待block执行完毕后再释放

14.ARC下会不会出现内存泄漏,什么情况会出现

会出现,例如循环引用,死循环都会出现内存泄漏,自己malloc开辟的空间需要手动去free

相关文章

网友评论

      本文标题:一次面试题总结2018-12-19

      本文链接:https://www.haomeiwen.com/subject/faiekqtx.html