面试题

作者: wps_pro | 来源:发表于2019-03-26 13:43 被阅读0次

底层:
1、runloop和线程有什么关系?
2、你是否接触过OC中的反射机制?简单聊一下概念和使用

    class反射
    通过类名的字符串形式实例化对象
    Class class NSClassFromString@(@"student");
    Student *stu = [[class alloc ]init];
    将类名变为字符串
    Class class =[Student class];
    NSString *className = NSStringFromClass(class);
    SEL的反射
    通过方法的字符串形式实例化方法
    SEL selector = NSSelectorFromClass(@"setName");
    [stu performSelector:selector withObject:@"Mike"];
    将方法变成字符串
    NSStringFomrSelector(@selector*(setName:))

3、objc中的类方法和实例方法有什么本质区别和联系?

类方法:
类方法是属于类对象的
类方法只能通过类对象调用
类方法中的self是类对象
类方法可以调用其他的类方法
类方法中不能访问成员变量
类方法中不能直接调用对象方法
实例方法:
实例方法是属于实例对象的
实例方法只能通过实例对象调用
实例方法中的self是实例对象
实例方法中可以访问成员变量
实例方法中直接调用实例方法
实例方法中也可以调用类方法(通过类名)

4、runloop的mode作用是什么?

一、RunLoop和线程的关系:
1.RunLoop 的作用就是来管理线程的,当线程的 RunLoop开启后,线程就会在执行完任务后,处于休眠状态,随时等待接受新的任务,而不是退出。
2.只有主线程的RunLoop是默认开启的,所以程序在开启后,会一直运行,不会退出。其他线程的RunLoop如果需要开启,就手动开启,
二、runloop内部是如何实现的:
1、有一个判断循环的条件,满足条件,就一直循环
2、线程得到唤醒事件被唤醒,事件处理完毕以后,回到睡眠状态,等待下次唤醒
二、runloop的mode作用是什么?:
1.model 主要是用来指定事件在运行循环中的优先级的,分为:
* NSDefaultRunLoopMode(kCFRunLoopDefaultMode):默认,空闲状态
* UITrackingRunLoopMode                       :ScrollView滑动时
* UIInitializationRunLoopMode 
                :启动时
* NSRunLoopCommonModes(kCFRunLoopCommonModes):Mode集合
2.苹果公开提供的 Mode有两个:
1. NSDefaultRunLoopMode(kCFRunLoopDefaultMode)
2. NSRunLoopCommonModes(kCFRunLoopCommonModes)

5、runloop是什么/runloop的概念?

6、id与instanncetype

1.id 可以当返回值类并且可以声明对象 
2.instancetype 只可以当返回值类型 
3.instancetype 返回和方法所在类相同类型的对象,id返回未知类型的对象(instancetype 会对返回值类型做一个检查,检查你这个返回值是不是当前类类型) 
 4.自定义初始化方法,返回值类型如果写成id,编译器会自动转换成instancetype

7、什么是GDB和LLDB?
8、模拟栈操作
9、你是否接触过OC中的反射机制?简单聊一下概念和使用
10、ldb(gdb)常用的调试命令?
11、block一般用那个关键字修饰,为什么? 哪些情况会引起block循环引用,怎么解决
12、为什么很多内置的类,如TableViewController的delegate的属性是assign不是retain?
13、ViewController的didReceiveMemoryWarning是在什么时候调用的?默认的操作是什么?
14、使用block时什么情况会发生引用循环,如何解决?
15、IB中User Defined Runtime Attributes如何使用?
基础:
16、weak和unowned
17、什么是GDB和LLDB?
18、static 关键字的作用:
19、Objective-C如何对内存管理的,说说你的看法和解决方法?
20、内存管理的几条原则时什么?按照默认法则.那些关键字生成的对象需要手动释放?在和property结合的时候怎样有效的避免内存泄露?
21、NSOperation queue?
22、什么是延迟加载?
23、BAD_ACCESS在什么情况下出现?
24、0x8badf00d表示是什么?
25、GCD与NSOperation这两者有什么区别?
26、单例的优弊是什么?
27、RunLoop和线程的关系: 怎么让子线程执行完成任务后不销毁
28、nonatomic和atomic对比 说说你对他们的理解。
29、两个对象之间相互通信 有哪些通信方式
30、os的数据存储有哪些方式,sqlite数据库是否支持多个线程写入数据,如果不支持怎么解决?
31、一个函数执行10次,有二次结果不正确 八次正确,你应 该怎么检查该bug。
1.首先既然有正确有错误,那么这个bug肯定是不一定会出错的,先看函数条件是否有漏写
2.然后再检查函数是否会存在空的情况
3.反复操作以上步骤去查明每个调用的函数结果都是正确的
32、1-1000 个数字,顺序打乱,又丢失了三个数字,找出丢失的三个数字。
33、Object-C有私有方法吗?私有变量呢?
34、堆和栈的区别?
35、能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?
36、如何用GCD同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)
37、dispatch_barrier_async的作用是什么?
框架:
38、第三方内存泄漏检测工具:MLeaksFinder原理分析
39、逃逸闭包
40、cocoa touch框架
网络:
41、HTTP协议详解
42、谈谈你对HTTP 、TCP、 IP、socket 协议的理解
测试:
43、单元测试那些事!
44、为什么使用这个单元测试呢?它给我们带来了什么好处呢?
45、单元测试的重要性:
swift:
46、swift闭包
47、swift中高阶函数map用法

相关文章

  • 面试材料

    面试经验 面试题1 面试题2 面试题3 面试题4 面试题5 面试题6――数据结构 面试题7――网络 面试题8――汇...

  • 高阶面试题

    webpack面试题 面试题:webpack插件 Git面试题 面试题:git常用命令 面试题:解决冲突 面试题:...

  • this的指向的面试题

    面试题1 面试题2 面试题3 面试题4

  • 面试所涉及的问题

    面试题参考1 : 面试题 面试题参考2 : 内存管理 面试题参考3 :面试题 ...

  • Android超实用最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • Android最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • 2022年web前端面试题

    web前端面试题分为:html/css面试题、javascript面试题、vue面试题、性能优化面试题、网络方面面...

  • ios面试题

    初级面试题 中级面试题 高级面试题 swift篇

  • Android超实用最全面试大纲(四)

    文章目录: 冷启动和热启动面试题 其他优化面试题 架构模式面试题 插件化面试题 热更新面试题 进程保活面试题 Li...

  • Android最全面试大纲(四)

    文章目录: 冷启动和热启动面试题 其他优化面试题 架构模式面试题 插件化面试题 热更新面试题 进程保活面试题 Li...

网友评论

      本文标题:面试题

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