SweetLoser Blog

树叶的一生,难道只是为了归根吗


  • 首页

  • 标签

  • 分类

  • 归档

ARM文档翻译(一)----寄存器篇

发表于 2019-12-11 | 分类于 ARM |
字数统计: 2.6k 字 | 阅读时长 ≈ 9 分钟
AArch64寄存器Arm处理器提供通用寄存器和专用寄存器以及一些在特定模式下可用的额外寄存器。 在 AArch64状态下,有以下寄存器是可用的: 31个64位通用寄存器(X0-X30),通用寄存器的低32位可用W0-W30访问。 4个栈指针寄存器:SP_EL0、SP_EL1、SP_EL2、SP_E ...
阅读全文 »

符号绑定的另一种打开方式

发表于 2019-12-09 | 分类于 iOS |
字数统计: 751 字 | 阅读时长 ≈ 2 分钟
懒加载和非懒加载iOS对于引用的外部符号,分为Lazy Symbol和Non-Lazy Symbol,分别存储在__DATA,__got节和__DATA,__la_symbol_ptr节。 Non-Lazy Symbol符号在dyld加载模块的时候,就会将真实的函数地址写入到对应的地址中,实现绑定 ...
阅读全文 »

Mach-o文件解析

发表于 2019-11-30 | 分类于 iOS |
字数统计: 2.1k 字 | 阅读时长 ≈ 10 分钟
介绍Mach-o文件是MacOS和iOS上的可执行文件。其格式如下图所示: 用Mach-o分析工具(MachOView )查看,其界面如下: header结合apple源码来看。 如果是多架构fat文件,文件的头部定义为: 1234567891011121314struct fat_head ...
阅读全文 »

isa(二)

发表于 2019-11-28 | 分类于 iOS |
字数统计: 3.4k 字 | 阅读时长 ≈ 15 分钟
前一篇介绍过isa的优化方式以及从被优化过的isa中获取真正的struct objc_class指针。然而我们对知识的渴望,并不允许自己仅仅只是知道它、了解它而已,还想进一步分析struct objc_class结构体,以及用它来做点什么。接下来,从isa指针中到底有哪些信息和获取到这些信息可以用来 ...
阅读全文 »

isa

发表于 2019-11-28 | 分类于 iOS |
字数统计: 1k 字 | 阅读时长 ≈ 4 分钟
如果对NSObject的实现有过研究,应该就知道,所有的对象,不管是实例对象,还是类对象,其实质都是一个C语言结构体: 12345678910111213141516typedef struct objc_class *Class;typedef struct objc_object *id;str ...
阅读全文 »

load

发表于 2019-11-28 | 分类于 iOS |
字数统计: 1k 字 | 阅读时长 ≈ 4 分钟
问题一:Category中有load方法吗?答:有的,但是和其他方法不同,Category 中的load和类中的load方法,并不是简单的覆盖或者继承。用一个简单的工程可以看出: LoadClass.m: 123456789#import "LoadClass.h"@implem ...
阅读全文 »

Category

发表于 2019-11-28 |
字数统计: 2.5k 字 | 阅读时长 ≈ 10 分钟
category是什么?category是Objective-C语言的一个特性,一般称之为“分类”,或者“类别”。其作用是在不修改类的源码的基础上,给类扩展一些接口。说的通俗一点,就是给已有类添加方法。 当需要为一个类添加新的方法时,在Objective-C中有四种方法可以做到。1、直接在这个类里添 ...
阅读全文 »

xcode-select 命令

发表于 2019-11-28 | 分类于 Mac |
字数统计: 377 字 | 阅读时长 ≈ 1 分钟
首先,解释一下什么是xcode-select命令:Print or change the path to the active developer directory. This directorycontrols which tools are used for the Xcode command ...
阅读全文 »

tagged Pointer

发表于 2019-11-28 | 分类于 iOS |
字数统计: 5.9k 字 | 阅读时长 ≈ 29 分钟
问题来源在最近的一次面试过程中,被问到Apple对tagged pointer的优化的问题,当时一脸懵逼,除了说上一句“提高访问效率和节约内存成本”,就没有然后了,被问及其实现原理一概不知。一时陷入尴尬,不知道对话该怎么继续。词穷的原因,大概是因为我的无知吧!所以过后,赶紧补上这方面的知识! 探索历 ...
阅读全文 »

block

发表于 2019-11-28 | 分类于 iOS |
字数统计: 1.8k 字 | 阅读时长 ≈ 8 分钟
##block初体验定义和使用block很简单: 1234567891011int main(int argc, const char * argv[]) { @autoreleasepool { void(^sl_block)(int) = ...
阅读全文 »
上一页1…345下一页

46 日志
8 分类
11 标签
GitHub
© 2024 SweetLoser | Site words total count: 57.8k
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4