01 2022 档案

摘要:这篇文章,我们主要来介绍一下objc_class结构的内容与含义。 我们知道Class的类型是objc_class类型 typedef struct objc_class *Class; 点进去objc_class可以看到部分定义: objc_class继承objc_object objc_obje 阅读全文
posted @ 2022-01-17 10:31 任淏 阅读(186) 评论(0) 推荐(0) 编辑
摘要:OC是一门动态性比较强的编程语言,跟C、C等语言有着很大的不同 OC的动态性是由Runtime API来支撑 Runtime API提供的接口基本都是C语言的,源码由C\C\汇编语言编写 在学习Runtime之前,我们先更深入的学习下有关isa的知识。 isa再学习 我们知道isa是一个指针,存储着 阅读全文
posted @ 2022-01-17 10:30 任淏 阅读(68) 评论(0) 推荐(0) 编辑
摘要:运行时。OC是运行时机制,也就是在运行的时候的一些机制,其中最主要的是消息机制。 对于C语言,函数的调用在编译的时候会决定调用哪个函数。 而对于OC语言中的函数,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。 在编译阶段,C语言 阅读全文
posted @ 2022-01-17 10:29 任淏 阅读(127) 评论(0) 推荐(0) 编辑
摘要:首先,我们看两段代码: 从运行结果可以看出,如果是普通局部变量age,第17行和第22行的age地址是一样的,第20行的地址跟前面两个是不同的。 这个原因我们在上节已经分析过。是因为: 第17和第22行的age是age的地址 第20行的age是捕获进去的age,其是一个在block内部新建的同名ag 阅读全文
posted @ 2022-01-11 14:30 任淏 阅读(166) 评论(0) 推荐(0) 编辑
摘要:面试题: 问:在24行打断点,person对象是否被释放? 按说,person的作用域是其附近的两个{},过了两个{}后,person对象应该被释放,而实际上,在24行断点处,person对象并没有消失。 问:为什么呢? 首先我们将程序运行,可以看到其运行过程: 24行打印block学习[2478: 阅读全文
posted @ 2022-01-07 15:51 任淏 阅读(89) 评论(0) 推荐(0) 编辑
摘要:首先,在学习之前,增加一些动力。经常在面试中,会被问及到这些问题: block的本质是什么? __block的作用是什么?原理是什么?有哪些使用注意点? 我们知道block在使用的时候,一般用copy修饰,用copy修饰发生了什么?具体过程是怎样的? 带着这些疑问,我们开始今天的学习。 block的 阅读全文
posted @ 2022-01-06 17:59 任淏 阅读(193) 评论(0) 推荐(0) 编辑
摘要:block是什么? block其实是一段代码块,其作用是保存一段代码块,在真正调用block的时候,才执行block里面的代码。 在程序里面输入inlineBlock,就可以得到block的声明与定义形式: /** 等号前面是block的声明; 等号后面是block的定义; returnType:b 阅读全文
posted @ 2022-01-06 17:58 任淏 阅读(174) 评论(0) 推荐(0) 编辑
摘要:前言 首先,这里有几个与Category相关的面试题,大家可以看一下 1、Category如何使用? 2、Category的原理是什么? 3、Category与类扩展的区别? 4、Category中load方法是什么时候调用的?load方法能被继承吗? 5、load和initialize的区别是什么 阅读全文
posted @ 2022-01-05 14:09 任淏 阅读(165) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示