加载中
Swift Module Interfaces

前言 今天看到一篇讲 Swift Crash 的文章一个 Swift Crash 引发的讨论...原文作者从Swift源码和UIKitCore -[UIView(UIKitManual) autorelease] 汇编代码的角度对 crash 的原因进行了分析。 ...

Swift 的 MemoryLayout 是如何工作的(1)

前言 自从在 搜狐技术产品 公众号看过 一文看破Swift枚举本质 后,就一直计划在该文章的基础更加深入地挖掘一下 Swift 枚举的内存布局。但是,Swift 枚举的内存布局 涉及的内容比较多。所以,...

09/16 09:10
1.3K
一文看破Swift枚举本质

本文字数:6139字 预计阅读时间:16分钟 前言 随着Swift5.0版本release之后,abi也变得逐渐稳定起来,加上Swift语法简洁、安全、语法糖丰富等特性,越来越多的开发者们开始拥抱、学习Swift。...

一文看破Swift枚举本质

本文字数:6139字 预计阅读时间:16分钟 前言 随着Swift5.0版本release之后,abi也变得逐渐稳定起来,加上Swift语法简洁、安全、语法糖丰富等特性,越来越多的开发者们开始拥抱、学习Swift。...

为什么 Linux 默认页大小是 “4KB”?

经常看到一些博客在讲 Linux 内存的 PAGE SIZE 时,都会提到 Linux 默认页大小是 4KB。 笔者通过搜索找到了一些与 PAGE SIZE 相关的资料,希望对读者有所帮助。 因为微信不支持外链,建议点击...

llvm 对 copy 属性的优化(2)

前言 本文将会回答两个问题: 什么场景会调用 objc_copyCppObjectAtomic 函数? 在上篇文章中,我们并没有发现任何场景会调用 objc_copyCppObjectAtomic 函数。 copyHelper 是如何生成的? ...

dbg
08/09 20:03
158
llvm 对 copy 属性的优化(1)

前言 最近看到一篇讲解 copy 原理的文章 - iOS 中 copy 的原理。 文章第一段【属性中的 copy】提到 objc_copyStruct objc_copyCppObjectAtomic 分别对应结构体和对象的拷贝。 本文将会通过将...

为什么使用汇编可以 Hook objc_msgSend(下)- 实现与分析

背景 在上一篇「为什么使用汇编可以 Hook objc_msgSend(上)- 汇编基础」中,我们介绍了 ARM64 中的汇编基础,并且知道了在汇编当中,调用一个方法的前后在栈空间是怎样表现的,以及内存中的...

08/05 22:22
88
基于 unicorn + capstone 动态分析生成 objc_msgSend 交叉引用并导入 IDA

背景 众所周知,在使用 IDA 进行 iOS 逆向工程时,仅仅依赖静态分析很难直接确定方法的 Callers,借助于 Decompiler 和 IDA 自己的分析能力仅能分析出非常有限的 objc_msgSend 交叉引用。目前...

lldb 入坑指北(2)-​ 15行代码搞定二进制与源码映射

01 — 随着项目的扩大,为了提 高开发效率、编译速度, 组件化(二进制化)是一种不可避免的趋势。 大部分的公司都分享过相关文章,本文不再赘述。下面集中在二进制化带来的问题,以及相应的...

中台的末路

本文分享自微信公众号 - 酷酷的哀殿(kukudeaidian)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。...

2019/09/26 22:02
0
揭秘 @available

# 【引言】为什么开启本话题 从2017年开始,OC语言可以使用 @available 语法糖判断运行时的系统版本,该语法糖可以帮助我们去掉很多烦人的警告。 2019年,@available 的内部实现进行了优化&...

2019/10/02 00:51
288
【漫画】TCP连接为什么是三次握手,而不是两次握手,也不是四次握手?

本文分享自微信公众号 - 酷酷的哀殿(kukudeaidian)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。...

2019/11/07 08:15
21
一个刚毕业的计算机相关专业学生,简历上有哪些经历会加分?

“ 本文是由淘宝FED 团队的 Barret李靖 发表在微博的文章 https://weibo.com/ttarticle/p/show?id=2309404435956567507075 。极度适合所有有志于提高自己(进入大公司)的同学阅读,希望大家...

2019/11/26 23:24
23
通过 LLVM IR 看语言特性(1)

前言 本系列文章会展示一些系列源码到 LLVM IR 语言的转换。目标是让我们更好的理解编译器是怎么运作的。 基本类型转换是如何发生的? 首先,我们先从一个最简单的问题开始:我们都知道下面 ...

01/09 09:20
61
2020 年的小目标

立目标前,先简单地回顾一下2019 年的收获 重新开始维护博客网站 http://ai-chan.top/ (没有技术含量的分享会发表在博客网站) 开发了一款基于 LLDB 的工具 lldb 入坑指北(2)- 15行代码搞...

优化程序链接速度

通过二进制化、图片预编译等方式都可以大量优化程序的编译速度。 但是,最终产出链接产物时,大型项目的链接耗时仍然远超预期。 以 clang 为例,它依赖超过 100 个组件,最终产物 511M,链接...

如何在 iOS 的源码中包含图片?

首先,先分享一个很实用的开源库。 通过添加这个开源库,笔者 80% 的调试工作都可以用这个库完成,而无需 Xcode 工具。 库的链接地址是:https://github.com/Flipboard/FLEX 先介绍一些笔者常...

iPhone可以运行Android了

历史上第一次(经指正是第二次。第一次是十年前)让Android系统运行到iPhone手机上。目前(2020年3月6日)的版本只支持iPhone7/7 Plus。(iOS系统版本无要求) Project Sandcastle: Android ...

Aspects深度解析-iOS面向切面编程

背景简述 在日常开发过程中是否有过这样的需求:不修改原来的函数,但是又想在函数的执行前后插入一些代码。这个方式就是面向切面(AOP),在iOS开发中比较知名的框架就是Aspects,而饿了么新...

ios
03/08 00:03
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部