240 发简信
IP属地:湖北
  • 120
    Swift API设计规范

    今天开始一段新的学习旅程---- 翻译Swift英文技术文档,目的主要是为了学习英语,顺带学习技术,翻译不是逐字翻译,而是基于内容翻译,原则是把里面涉及到的关键点讲清楚;Le...

  • Swift协议:RawRepresentable

    enum 中的RawRepresentable RawRepresentable是一个协议,包含关联类型RawValue RawValue相当于一个范型,遵循这个协议相当于该...

  • 可以的 挺透彻 深入思考了

    08--内存管理--一个对象什么时候加入自动释放池?

    一个对象什么时候加入自动释放池? 误解一:ARC下的所有对象都会加入自动释放池? 自动释放池没有那么闲,苹果也没那么傻,一个没用的临时对象加到自动释放池有啥用? 误解二:@a...

  • 120
    iOS疑难Crash的寄存器赋值追踪排查技术

    我们会借助一些崩溃日志收集库来定位和排查线上的崩溃信息,但是有些崩溃堆栈所提供的信息有限又不是必现崩溃,很难直观排查出问题的所在。这里我给大家分享一个采用寄存器赋值追踪的技术...

  • 120
    深入iOS系统底层之crash解决方法

    众里寻他千百度,蓦然回首,那人却在灯火阑珊处。--《青玉案·元夕》 要学会看crash崩溃和报告 一个应用程序并不总会一直运行的很好,它总会有出现crash崩溃的情况。如果在...

  • iOS沙盒路径会变化

    沙盒中的路径是会变的,只有通过苹果提供的API方法获得的路径才是正确的。比如NSCachesDirectory获得缓存的路径第一次是/var/xxx/ABCD/Caches。...

  • 120
    iOS 野指针定位:野指针嗅探器

    一. 前言 最近被指派去解决一些线上的崩溃问题,经常遇到野指针导致的崩溃。相对于其他的原因引起的崩溃来说,野指针导致崩溃是最难定位的,这里主要总结了两种思路来定位野指针导致的...

  • ARM64指令简易手册

    ARM处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令6大指令。 本文只列举一些常见的基本指令,可以...

  • 120
    Autoreleasepool

    局部释放池 创建一个新的自动释放池的方法:ARC下: 这相当于MRC下: 其中对象s会被加入到自动释放池,当ARC下代码执行到右大括号时(相当于MRC执行代码[pool dr...

  • 120
    iOS逆向工程 - fishhook原理

    fishhook是Facebook提供的一个动态修改链接mach-O文件的工具。利用MachO文件加载原理,通过修改懒加载和非懒加载两个表的指针达到C函数HOOK的目的。 前...

  • 120
    深入理解内存分配

    相信大家在学习C语言的时候,malloc是最早遇到的几个方法之一,这里就来深入的了解下,macOS/iOS中用户空间的内存分配。 引言 首先,我们来看几个有意思的例子,以下几...

  • 120
    【libffi】动态调用&定义C函数

    这段时间在做一个组件开发,要实现JS那边动态调用一个含有block参数的OC方法,接触到了libffi,主要涉及使用libffi 动态调用和定义C函数两个方面,下面是使用之后...

  • 120
    “xxx”已损坏,无法打开。您应该将它移到废纸篓。

    macOS 10.15 Catalina 安装 app 提示已损坏,无法打开的解决方法[https://www.jianshu.com/p/1f91d40b491b] 在ca...

  • 120
    Clang 之旅--使用 Xcode 开发 Clang 插件

    Clang 之旅系列文章:Clang 之旅--使用 Xcode 开发 Clang 插件Clang 之旅--[翻译]添加自定义的 attributeClang 之旅--实现一个...