首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
底层
订阅
烤鱼君快熟了
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 0订阅
iOS应用的启动流程和优化详解
一、应用启动流程1、整体过程(1)解析Info.plist加载相关信息,例如如闪屏沙箱建立、权限检查(2)Mach-O(可执行文件)加载如果是胖二进制文件(为了保持向下兼容,且支持旧有设备及旧有指令集
【iOS内功】如何排查无法复现的系统内部Crash?
苹果每年都会升级iOS系统,可能会对系统库进行逻辑改动。我们自己工程里有些代码你可能几年没动过,但系统一升级就会出现奇怪的Crash。今天介绍一个案例,iOS13.3升级后,导致工程里某个方法签名会引发NSInvocation内部的数组越界。因为一直无法完美复现,最后经过多次假…
记 os_object_release Crash 排查
Crash 信息 线上存在一个持续很久的 Crash,由于没有明确业务栈且量级不算大,让它成为了老赖之一,Crash 栈是这样的: 由于不能明确是哪个业务代码引起的,所以先确认 Crash 的对象是哪
YYModel 源码剖析:关注性能
json与模型的转换框架很多,YYModel 一出,性能吊打同类组件,终于找了些时间观摩了一番,确实收益颇多,写下此文作为分享。 由于该框架代码比较多,考虑到突出重点,压缩篇幅,不会有太多笔墨在基础知识上,很多展示源码部分会做删减,重点是在理解作者思维。读者需要具备一定的 ru…
iOS 如何高效的使用多线程
多线程技术在移动端开发中应用广泛,GCD 让 iOS 开发者能轻易的使用多线程,然而这并不意味着代码就一定高效和可靠。深入理解其原理并经常结合业务思考,才能在有限的线程控制 API 中最大化发挥并发编程的能力,也能轻易的察觉到代码可能存在的安全问题并优雅的解决它。 本文不会讲解…
iOS-1.对象alloc的流程分析
alloc & init & new 源码分析 alloc底层都做了哪些 init源码 new的源码
深入研究Block用weakSelf、strongSelf、@weakify、@strongify解决循环引用
前言 在上篇中,仔细分析了一下Block的实现原理以及__block捕获外部变量的原理。然而实际使用Block过程中,还是会遇到一些问题,比如Retain Circle的问题。 目录 1.Retain Circle的由来 2.__weak、__strong的实现原理 3.wea…
iOS:组件化的三种通讯方案
组件化 本文主要介绍组件化常用三种通讯方式. 常⽤的三种组件化通讯方案 组件化通信方案 组件化最重要的是兄弟模块的通讯 常⽤的三种方案 URL Scheme Target - Action Proto
iOS 优化篇 - 启动优化之Clang插桩实现二进制重排
( 本篇文章由于会从原理角度讲解 , 有些已经比较熟悉的同学可能会觉得节奏偏啰嗦 , 为了照顾大部分同学 , 大家自行根据目录跳过即可 . ) 了解二进制重排之前 , 我们需要了解一些前导知识 , 以及二进制重排是为了解决什么问题 . 在本篇文章里 , 笔者就不通过教科书或者大…
iOS逆向--MachoO文件
我们发现有4种架构。再拆分出armv7架构: 说明合并成功了,当然不仅仅是两个,可以多个macho文件合成一个,我们可以通过这种方式来分析可执行文件的单一架构。 header:包含该二进制文件的一般信息,最开始读取的部分,例如字节顺序、架构类型、加载指令的数量等。类似于一本书的…