摘要: 什么是RunLoop runloop是运行循环,在程序运行过程中循环做一些事情 RunLoop应用范畴 定时器、PerformSelector、GCD 事件响应、手势识别、界面刷新、网络请求、自动释放池 获取RunLoop对象 iOS中有2套API来访问和使用RunLoop,分别是NSRunLoop 阅读全文
posted @ 2021-02-22 21:28 木子沉雨 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 在arm64架构之前,isa就是一个普通的指针,存储着Class、Meta-Class对象的地址 从arm64架构开始,对isa进行了优化,变成了一个共用体(union)结构,还使用位域来 存储更多信息,在apple源码objc中找到isa的结构源码大抵如下: # if __arm64__ # de 阅读全文
posted @ 2021-01-05 23:28 木子沉雨 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 对于LBPerson类,代码如下 @interface LBPerson : NSObject @property (nonatomic, copy) NSString *name; - (void)test; @end @implementation LBPerson - (void)test { 阅读全文
posted @ 2020-12-30 11:27 木子沉雨 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 写如下代码: BOOL flag1 = [[NSObject class] isKindOfClass:[NSObject class]]; BOOL flag2 = [[NSObject class] isMemberOfClass:[NSObject class]]; BOOL flag3 = 阅读全文
posted @ 2020-12-28 21:48 木子沉雨 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 对于下面的代码,打印的结果是啥 #import "LBStudent.h" @implementation LBStudent - (instancetype)init { self = [super init]; if (self) { NSLog(@"[self class] = %@", [s 阅读全文
posted @ 2020-12-28 21:25 木子沉雨 阅读(104) 评论(0) 推荐(0) 编辑
摘要: __block修饰符 __block可以用于解决block内部无法修改auto变量值的问题, __block不能修饰全局变量、静态变量 写下面的block代码: int main(int argc, const char * argv[]) { @autoreleasepool { __block 阅读全文
posted @ 2020-12-16 23:03 木子沉雨 阅读(337) 评论(0) 推荐(0) 编辑
摘要: block中对于变量的捕获分为三种: 值传递、指针传递和直接访问 值传递 block捕获的局部变量,用auto修饰的,auto一般省略 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autor 阅读全文
posted @ 2020-12-03 23:36 木子沉雨 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 写如下的block声明代码: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { void (^blockTest)(void) = ^{ NSLog(@"hah 阅读全文
posted @ 2020-12-03 17:41 木子沉雨 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 我在最新版的objc中找到initializeNonMetaClass,源码如下: void initializeNonMetaClass(Class cls) { ASSERT(!cls->isMetaClass()); Class supercls; bool reallyInitialize 阅读全文
posted @ 2020-12-01 23:06 木子沉雨 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 从objc苹果的源码中可以看到如下代码: load_images(const char *path __unused, const struct mach_header *mh) { if (!didInitialAttachCategories && didCallDyldNotifyRegist 阅读全文
posted @ 2020-12-01 22:29 木子沉雨 阅读(289) 评论(0) 推荐(0) 编辑