2023 年度总结
2023 年的个人年度总结。再见,2023
2023 年的个人年度总结。再见,2023
GitLab 集成 Telegram,通过机器人向群组、频道或者私人发送通知

掐指算算,我在 Keep 至今工作了两年零四个月多,还没满两年半。回想当初毕业在即,Keep 收留我这个匆匆忙忙找工作的落魄学生,我内心是非常感激的。但如今还是不得不说「江湖再见」了。 起 毕业前那会儿面试时,是安卓组的同学先后面我;后来机缘巧合,拿到 offer 后我又被 iOS 组挖了过去,从此正式成为一名 iOS 开发者。之所以选择 iOS,是因为我大三开始就对客户端开发非常感兴趣...
iOS 调用栈回溯的底层知识,如寄存器、堆栈等。在汇编语言中逐行分析调用栈工作的流程
本文介绍 struct 内存对齐相关的知识概念以及应用。 struct 的内存结构 在学习 Objective-C Blocks 的时候,有这样一段代码: struct __main_block_impl_0 { struct __block_impl impl; struct __main_block_desc_0* Desc; __main_block_impl_0(v...
前段时间尝试了一下博客平台 Ghost,最近准备再切回到 Github Page 以及 Jekyll 了。 Ghost 给我的初印象还是不错的,内置主题挺好看,有出色的后台管理,订阅和会员也是开箱即用的,还免费提供一个二级域名。我本来是想用它配合 Ulysses 一起用,在 Ulysses 上写完文章可以直接 post 到 Ghost 上。最后发现 Ulysses 实在不适合做知识管理库,...
上一篇关于 Block 基础知识的文章里,提到 Block 是对标准 C 的拓展,它的底层还是依赖标准 C/C++ 实现的。这篇文章就来揭秘一下 Block 的底层实现。 利用 clang 转译 Objc 源码 利用 clang 的 -rewrite-objc 参数可以将 Objc 源码转译为标准 C 代码(输出文件格式为 .cpp )。虽说输出是 C++ 文件,但其实内部主要还是用标准...
Blocks 系列是基于学习《Pro Multithreading and Memory Management for iOS and OS X with ARC, Grand Central Dispatch, and Blocks》 一书过程中的笔记整理而来的。 Block 是在 iOS 开发过程中经常出现的角色。它是由 Apple 在 OS X Snow Leopard / iO...
介绍如何在 Swift 语言中实现链式语法,并且支持在 Objc 语言中调用
符号化可以将上面的得到的代码内存地址转为可读的函数签名信息,包括函数名、文件名、行数等等,方便我们快速定位问题。 符号化常用方法 使用 backtrace_symbols_fd 方法进行运行时符号化 backtrace_symbols_fd 函数能够将从backtrace 中得到的原始堆栈信息进行符号化,并输出到控制台。 vm_address_t *stacks_2[128]; in...