2023 年度总结
日子真快,2023 年结束了,新的一年又开始了。本来不是很想写总结的,仔细想了想,就权当是写一个年度的日记吧,将来回忆过往的时候也许能用到。 事记 记事簿 动词 名词 注释 买了 Switch 赶在王国之泪发售前买了,买后通关了旷野之息和王国之泪。买之前听说里面能玩...
日子真快,2023 年结束了,新的一年又开始了。本来不是很想写总结的,仔细想了想,就权当是写一个年度的日记吧,将来回忆过往的时候也许能用到。 事记 记事簿 动词 名词 注释 买了 Switch 赶在王国之泪发售前买了,买后通关了旷野之息和王国之泪。买之前听说里面能玩...
GitLab 官方支持集成 Telegram,在项目的 Settings → Integrations 里就能找到。除了 Telegram 外,GitLab 还支持对 Slack、Discord 等软件的集成。 之前我做过通过 GitLab 的 webhook,在飞书群里发送 GitLab 通知的项目。那个项目需要先让 GitLab 把 webhook 数据发到自己服务器上,然后再格式化为...
掐指算算,我在 Keep 至今工作了两年零四个月多,还没满两年半。回想当初毕业在即,Keep 收留我这个匆匆忙忙找工作的落魄学生,我内心是非常感激的。但如今还是不得不说「江湖再见」了。 起 毕业前那会儿面试时,是安卓组的同学先后面我;后来机缘巧合,拿到 offer 后我又被 iOS 组挖了过去,从此正式成为一名 iOS 开发者。之所以选择 iOS,是因为我大三开始就对客户端开发非常感兴趣...
前言 在做「大内存分配监控系统」时,我是先深入学习了一下堆栈回溯相关的底层原理,以及符号化相关的知识。这篇文章就是当时记下的学习笔记。 调用栈回溯的目的是追踪某个函数的调用链。比如函数 A 调用了函数 B,函数 B 又调用了函数 C,调用链就是 A → B → C。调用栈回溯拿到的一般是函数的内存地址信息,无法看到函数名,需要再做一次符号化操作。 本文参考: App Libc A...
本文介绍 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 /...
链式编程是面向对象编程中同一个对象多个方法被调用的常用语法,可读性比较好。链式编程一般通过小数点.链接各个方法,使之成为一句代码,方法被依次调用。 Swift 实现简单的链式编程 Swift 实现链式编程比较简单,只需要让每个方法返回实例本身即可。例如: @discardableResult func A() -> Self { // do some thing... ...
符号化可以将上面的得到的代码内存地址转为可读的函数签名信息,包括函数名、文件名、行数等等,方便我们快速定位问题。 符号化常用方法 使用 backtrace_symbols_fd 方法进行运行时符号化 backtrace_symbols_fd 函数能够将从backtrace 中得到的原始堆栈信息进行符号化,并输出到控制台。 vm_address_t *stacks_2[128]; in...