
iOS
文章平均质量分 90
rhythmkay
这个作者很懒,什么都没留下…
展开
-
UMD格式与解析详解
本文是对于UMD格式结构分析,并针对iOS平台利用Object-C解析UMD文件,给出完整流程与实现。UMD是一种在几年前较为常见的电子书格式,尽管现在它已经逐渐被遗忘了。UMD主要分为3种格式类型:纯文本格式,漫画/写真集格式,连环画(文字+图片)格式。本文只讨论纯文本格式(即通用的小说格式)的umd文件的解析过程与格式结构分析。UMD文件本质是经过zlib压缩后的压缩数据,并且按照特定的先后顺序来排列小说文章的结构与内容。小说的内容被顺序的分成有序且连续的数据块。UMD文件编码为UNICODE(UCS原创 2015-05-12 12:50:49 · 8271 阅读 · 0 评论 -
iOS12 SKStoreViewController crash修复
文章目录一、前言二、问题描述三、分析问题非法内存访问四、解决问题一、前言SKStoreViewController在iOS 11上是正常没啥问题的,但到了iOS 12突然导致了大范围的闪退。这其实本质是苹果的StoreKit开发人员犯了一个很简单的错误导致的;二、问题描述从iOS 12 beta5开始我们线上逐渐多了如下堆栈的crash,到iOS 12.1发布这个问题一直依旧存在,且越来越...原创 2018-12-13 15:13:25 · 1083 阅读 · 0 评论 -
__block不适合多线程并发
objc的很多设计,从底层实现上都不完全是线程安全的,这也导致在一些极端的并发情况下,会引起竞争导致的内存访问错误问题。之前分析过_weak的设计不是多线程安全的,最近又踩坑了_block,发现这个居然也不是线程安全。当然这也不是说 _block, _weak 这些不要用了,而是说在比较频繁创建释放且有多线程使用的情况下,不要用 ___block, _weak修饰,因为他们的确不是线程安全的...原创 2019-04-24 21:07:47 · 1166 阅读 · 0 评论 -
Crash优化与建议
文章目录一、Crash与信号1.1 Crash是如何产生的1.1.1 signal1.1.2 signal处理流程1.1.3 signal捕获1.2 Crash日志简析二、Crash优化思路2.1 分析问题2.2 可复现的crash2.3 难复现的crash2.3.1 根据信号分析2.3.2 根据exception信息提示2.3.3 根据异常地址2.3.4 根据寄存器信息2.3.5 根据附加信息2...原创 2019-06-27 22:11:34 · 2894 阅读 · 0 评论