勤能补拙

这是一个简单的小博客


  • 首页

  • 归档

  • 标签

Runtime补充

发表于 2020-03-06 | 分类于 移动端
class_copyIvarList & class_copyPropertyList区别要想清楚这个问题,首先要知道@property做了什么事情。在对象中增加一个成员变量有两种方式 @interface ViewController () { NSString *_ivar1; ...
阅读全文 »

Tagged Pointer 源码解析

发表于 2020-02-11
阅读全文 »

浅析iOS开发中的各种锁

发表于 2020-02-02 | 分类于 移动端
OSSpinLock 自旋锁 ( heigh-leve Lock、自旋锁)使用需导入头文件 #import <libkern/OSAtomic.h>使用方式 OSSpinLock _lock = OS_SPINLOCK_INIT; // 初始化一个锁 OSSpinLockLock(&am ...
阅读全文 »

RunLoop源码分析

发表于 2020-02-01 | 分类于 移动端
分析使用的RunLoop源码版本: CF-1153.18.tar官方示例使用讲解: 链接地址 RunLoop 是什么?一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让线程能随时处理事件但并不退出,通常的代码逻辑是这样的: 1234567function loo ...
阅读全文 »

Runtime初探(三)

发表于 2020-01-20 | 分类于 移动端
在 Objective-C 语言中,实例对象执行方法,而执行方法的过程也可以称为给实例对象发送消息。当你随便写下一段函数调用的代码后, [receiver message];都会被编译器转化为 id objc_msgSend(id self, SEL op, ...);本文将分析objc_msgSe ...
阅读全文 »

Block探索

发表于 2020-01-09 | 分类于 移动端
Block 初探Block 是什么首先新建main.m文件写下如下代码 123456int main(int argc, const char * argv[]) { @autoreleasepool { ^{ NSLog(@"Hello, ...
阅读全文 »

Runtime初探(二)

发表于 2019-12-07 | 分类于 移动端
关联对象在分类中可以定义property,但是编译器并不会@synthesize实例变量。一般有需求添加实例变量属性时会采用objc_setAssociatedObject和objc_getAssociatedObject方法绑定方法绑定,不过这种方法生成的与一个普通的实例变量完全是两码事。 obj ...
阅读全文 »

ReactiveObjC冷热信号

发表于 2019-11-17 | 分类于 移动端
冷信号和热信号的概念冷热信号的概念是源自于源于.NET框架中的 Hot Observable 和 Cold Observable Hot Observable 是主动的,尽管你并没有订阅事件,但是它会时刻推送。而 Cold Observable 是被动的,只有当你订阅的时候,它才会发布消息。 Ho ...
阅读全文 »

NSObject源码分析

发表于 2019-11-17 | 分类于 移动端
本篇文章分析使用的 runtime 为 objc4-756.2 NSObject 是什么?对于 objc 来说,一个对象可以想象成为一个结构体。至少他们在内存布局时是这样的。接下来我们来证实一下。首先我们来看下NSObject头文件的定义。 12345typedef struct objc_cl ...
阅读全文 »

Runtime初探(一)

发表于 2019-11-17 | 分类于 移动端
什么是 Runtime苹果对 Runtime 的解释: The Objective-C runtime is a runtime library that provides support for the dynamic properties of the Objective-C language ...
阅读全文 »
12…5
Dylan

Dylan

43 日志
3 分类
12 标签
© 2020 Dylan
由 Hexo 强力驱动
主题 - NexT.Pisces