摘要: contract Test { event NFTReceived(address operator, address from, uint256 tokenId, bytes data); function onERC721Received(address operator, address fr 阅读全文
posted @ 2021-07-06 15:53 ShaoYL 阅读(638) 评论(0) 推荐(0) 编辑
摘要: iOS Block的本质(四) 上一篇文章 "iOS Block的本质(三)" 中已经介绍过block变量的捕获,本文继续探寻block的本质。 1. block内修改变量的值 1. 默认情况下block不能修改外部的局部变量。通过之前对源码的分析可以知道。 2. age是在main函数内部声明的, 阅读全文
posted @ 2019-01-10 16:55 ShaoYL 阅读(180) 评论(0) 推荐(0) 编辑
摘要: iOS Block的本质(三) 上一篇文章 "iOS Block的本质(二)" 中已经介绍过block变量的捕获,本文继续探寻block的本质。 1. block对对象变量的捕获,ARC 环境 1. block一般使用过程中都是对对象变量的捕获,那么对象变量的捕获同基本数据类型变量相同吗? 2. 查 阅读全文
posted @ 2019-01-10 14:39 ShaoYL 阅读(285) 评论(0) 推荐(0) 编辑
摘要: iOS Block的本质(二) 1. 介绍引入block本质 1. 通过上一篇文章 "Block的本质(一)" 已经基本对block的底层结构有了基本的认识,block的底层就是 2. 通过以下这张图展示底层各个结构体之间的关系。 2. block的变量捕获 为了保证block内部能够正常访问外部的 阅读全文
posted @ 2019-01-09 18:18 ShaoYL 阅读(222) 评论(0) 推荐(0) 编辑
摘要: iOS Block的本质(一) 1.对block有一个基本的认识 block本质上也是一个oc对象,他内部也有一个isa指针。block是封装了函数调用以及函数调用环境的OC对象。 2.探寻block的本质 首先写一个简单的block 3.查看其内部结构 1. 使用命令行将代码转化为c++与OC代码 阅读全文
posted @ 2019-01-09 14:07 ShaoYL 阅读(900) 评论(0) 推荐(0) 编辑
摘要: iOS Category 添加属性实现原理 关联对象 RunTime为Category动态关联对象 使用RunTime给系统的类添加属性,首先需要了解对象与属性的关系。对象一开始初始化的时候其属性为nil,给属性赋值其实就是让属性指向一块存储内容的内存,使这个对象的属性跟这块内存产生一种关联。 那么 阅读全文
posted @ 2019-01-08 20:58 ShaoYL 阅读(631) 评论(0) 推荐(0) 编辑
摘要: iOS Category实现原理 (补充) load 和 initialize load 1. load方法会在程序启动就会调用,当装载类信息的时候就会调用。 调用顺序看一下源代码。在 objc loadmethod.m 文件中实现 2. 通过源码我们发现是优先调用类的load方法,之后调用分类的l 阅读全文
posted @ 2019-01-08 16:46 ShaoYL 阅读(158) 评论(0) 推荐(0) 编辑
摘要: iOS Category实现原理 实现原理 1. 我们不主动引入 Category 的头文件,Category 中的方法都会被添加进主类中。我们可以通过 performSelector: 等方式 对 Category 中的相应方法进行调用 a) 将 Category 和它的主类(或元类)注册到哈希表 阅读全文
posted @ 2019-01-08 16:13 ShaoYL 阅读(349) 评论(0) 推荐(0) 编辑
摘要: KVO 的实现原理 1. KVO是关于runtime机制实现的 2. 当某个类的对象属性第一次被观察时,系统就会在运行期动态地创建该类的一个派生类,在这个派生类中重写基类中任何被观察属性的setter方法。派生类在被重写的setter方法内实现真正的通知机制 3. 如果原类为Person,那么生成的 阅读全文
posted @ 2019-01-08 13:38 ShaoYL 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 安卓创建工具类 1.运用IOC框架简化代码 注解 (Annotation):@Class 给代码看的处理代码逻辑 2. 创建自己的注解 @Target() @Retention() RetentionPolicy.RUNTIME 运行时 RetentionPolicy.SOURCE 编译时 3.解释 阅读全文
posted @ 2018-12-30 14:18 ShaoYL 阅读(700) 评论(0) 推荐(0) 编辑