- 博客(5)
- 资源 (9)
- 收藏
- 关注
原创 OC对象的本质与initIsa
先上结论:OC对象的本质是结构体,结构体内部是一个指针; 1. 如何探究 通常我们编写的OC代码,其底层都是 C/C++代码,所以 OC对象都会转换成 C/C++的某种数据结构。 那么我们可以通过clang,将相关的OC文件编译成C/C++文件: clang -rewrite-objc main.m -o main.cpp 2. 源码分析 main.m文件源码: @interface Student : NSObject @property (nonatomic, copy) NSString
2021-06-15 22:05:33
209
1
原创 结构体内存分析
1. 什么是内存对齐 看下面的小程序,理论上,int占4 byte,char占一个1 byte,那么将它们放到一个结构体中应该占4+1=5byte,但是实际上,通过运行程序得到的结果是8 byte,这就是内存对齐所导致的。 struct Struct { int a; // 4 char b; // 1 }struct4; NSLog(@"%lu",sizeof(struct4)); // 输出为 8 计算机中内存空间都是按照 byte 划分的,从理论上讲似乎对任何类型的变量的访问可以
2021-06-09 14:43:17
663
1
原创 OC对象alloc分析
首先我们先看下alloc创建对象的一个整体流程图: 1. 如何分析 alloc方法的执行流程 1.1 通过符号断点分析 首先我们在alloc方法调用的地方打上断点,待程序运行到改行时,按住 ctrl键,同时数遍点击 xcode底部的 Debug窗口的 step into即可进入。具体方法如下图所示: 注意:一定要在程序运行到alloc方法的时候,在enable符号断点,否者程序运行时创建的类,会反复hit这个符号断点 1.2 直接阅读汇编代码 通过设置Always Show Disassembly阅读程
2021-06-06 01:30:43
323
1
转载 更新自己的cocoapods库
更新自己的cocoapods库 修改XXXX.podspec文件中s.version的内容 打tag,跟podspec文件中的s.version一致 上传到Git,将包含配置好的 .podspec, 项目提交 Git 验证.podspec文件 pod spec lint xxxx.podspec --verbose 发布 pod trunk push xxxx.podspec ...
2019-12-05 14:52:08
266
转载 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-03-15 08:40:49
324
SWIFTER-100个Swift必备Tips(第四版)(epub+pdf+playground)
2018-08-23
12.0 (16A366) Xcode10 12.0模拟器调试包iOS12
2018-09-18
12.1 (16B91) Xcode10.1 12.1模拟器调试包iOS12
2018-11-01
iOS13.1 device support 模拟器调试包
2019-09-03
13.0模拟器调试包.zip
2019-09-03
iOS13.2Device Support.zip
2019-11-13
Swifter Tips 2.zip
2019-09-03
12.4 (16G73).zip
2019-09-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅