![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
知识点记录
文章平均质量分 61
不可见
金鱼女士
做过 iOS开发 (OC/swift/flutter),目前在写前端 (react/vue/Taro/微信小程序 )
展开
-
iOS Block clang 转 c++ 后底层解析
有一个类 BlockClass, 该类有一个类方法 +funcTest情景一: 为什么外界修改了变量 a 的值, 调用block时打印的值不变?#import "BlockClass.h"@implementation BlockClass+ (void) funcTest { int a = 10; NSLog(@"a1: %p, %d", &a,a); void(^blockName)(void) = ^{ NSLog(@"block 内 a: %原创 2021-09-01 19:43:18 · 349 阅读 · 0 评论 -
iOS AutoreleasePool 原理
@autoreleasepool { Person *p = [Person new];}等价于void *atautoreleasepoolobj = objc_autoreleasePoolPush();Person *p = [[Person new] autorelease];objc_autoreleasePoolPop(atautoreleasepoolobj);void *objc_autoreleasePoolPush(void) { return..原创 2021-08-31 20:41:55 · 675 阅读 · 0 评论 -
iOS hook +load方法(A4LoadMeasure)
参考hook +load 方法的前提要是在它被调用之前处理.我们知道 +load 方法是在 dyld 加载完动态库后, 调用_objc_init原创 2021-08-25 18:44:47 · 1295 阅读 · 0 评论 -
iOS 源码分析之 _objc_msgSend(思维导图)
+ (void)initialize 懒加载调用.当首次创建某个类的实例对象时, 会层层调用1. Class class_initialize(Class cls, id obj)2. static Class initializeAndMaybeRelock(Class cls, id inst, mutex_t& lock, bool leaveLocked)3.void initializeNon...原创 2021-08-09 17:31:06 · 196 阅读 · 0 评论 -
iOS 类结构体 (导图)
画了张图网图原创 2021-08-17 17:22:59 · 124 阅读 · 0 评论 -
几种常见的锁&信号量&栅栏函数
多线程1. 信号量: 类似于锁的作用// 创建信号量dispatch_semaphore_create(longvalue);// 信号量+1dispatch_semaphore_signal(dispatch_semaphore_tdeem);// 信号量==0 ? 等待: 信号量-1并继续执行dispatch_semaphore_wait(dispatch_semaphore_tdsema,dispatch_time_ttimeout);业务场景: 异步转同步; 任务..原创 2021-08-13 18:53:10 · 195 阅读 · 0 评论