摘要:
Runtime是近年来面试遇到的一个高频方向,也是我们平时开发中或多或少接触的一个领域,那么什么是runtime呢?它又可以用来做什么呢? 1、详解isa 我们在研究对象的本质的时候提到过isa,当时说的是isa是个指针,存储的是个类对象或者元类对象的地址,实例对象的isa指向类对象,类对象的isa 阅读全文
摘要:
1、block的基本概念及使用 blcok是一种特殊的数据结构,它可以保存一段代码,等到需要的时候进行调用执行这段代码,常用于GCD、动画、排序及各类回调。 Block变量的声明格式为: 返回值类型(^Block名字)(参数列表); //声明一个没有传参和返回值的blcok void(^myBloc 阅读全文
摘要:
1、对组件化的理解 ①什么是组件化? 组件化就是将一个项目拆分成若干个组件,分而治之。比如一个汽车的生产,也是将轮子、灯、座椅等等作为单独的组件,由各自的工厂去生产维护,生产轮子的就专门做轮子,生产座椅的就专门生产座椅,等各个组件都做好后再拿到组装厂统一调度组装使用。 在实际的开发中也是一样,比如我 阅读全文
摘要:
2019-07-25: Error fetching https://gems.ruby-china.org/: bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz) 原因是 ruby-china 更换了域名 ht 阅读全文
摘要:
1、概念与组成 delegate是iOS中一种常见的设计模式,是一种消息传递的的方式,常见的消息传递方式还有以下几种: 我们可以通过一个简单的例子来解释什么是代理?什么是协议? 有个baby不会自己吃饭和洗澡等等做一些事情,于是baby就请了一个保姆,于是baby和保姆之间有了一个协议(Protoc 阅读全文
摘要:
1、分类的概念 分类是为了扩展系统类的方法而产生的一种方式,其作用就是在不修改原有类的基础上,为一个类扩展方法,最主要的是可以给系统类扩展我们自己定义的方法。 如何创建一个分类?↓↓ 比如我们为Person创建了一个Student的分类: 其实分类的作用还是挺大的,比如我们有一个类的功能很复杂 如果 阅读全文
摘要:
1、概念: KVC(Key-value coding):键值对编码,也就是我们可以通过变量的名称来读取或者修改它的值,而不需要调用明确的存取方法。这样就可以在运行时动态地访问和修改对象的属性。而不是在编译时确定。对于类里的私有属性,Objective-C是无法直接访问的,但是KVC是可以的。 作用: 阅读全文
摘要:
1、概念 KVO(Key-Value-Observer)也就是观察者模式,是苹果提供的一套事件通知机制。允许对象监听另一个对象特定属性的改变,并在改变时接收到事件,一般继承自NSObject的对象都默认支持KVO。 2、使用 1、 2、 3、 注意点 KVO的addObserver和removeOb 阅读全文
摘要:
Object-C的底层都是通过C/C++来实现的,所以OC中的对象也会转化成C/C++中的某一个数据结构, 我们在终端里通过指令 将oc代码转化为c++代码,我们可以看到NSObject的底层结构是: Class是一个指向对象的结构体指针 所以NSObject最终会转化成一个结构体,内部只有一个指向 阅读全文