- 博客(5)
- 资源 (9)
- 收藏
- 关注
原创 OC对象的本质与initIsa
先上结论:OC对象的本质是结构体,结构体内部是一个指针;1. 如何探究通常我们编写的OC代码,其底层都是 C/C++代码,所以 OC对象都会转换成 C/C++的某种数据结构。那么我们可以通过clang,将相关的OC文件编译成C/C++文件:clang -rewrite-objc main.m -o main.cpp2. 源码分析main.m文件源码:@interface Student : NSObject@property (nonatomic, copy) NSString
2021-06-15 22:05:33 137 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 521 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 221 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 169
转载 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-03-15 08:40:49 238
iOS13.2Device Support.zip
2019-11-13
iOS13.1 device support 模拟器调试包
2019-09-03
13.0模拟器调试包.zip
2019-09-03
12.4 (16G73).zip
2019-09-03
Swifter Tips 2.zip
2019-09-03
12.1 (16B91) Xcode10.1 12.1模拟器调试包iOS12
2018-11-01
12.0 (16A366) Xcode10 12.0模拟器调试包iOS12
2018-09-18
SWIFTER-100个Swift必备Tips(第四版)(epub+pdf+playground)
2018-08-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人