排序
iOS crash问题汇总(持续更新)
前言 对于iOS开发来说,日常空闲做得最多的事(除了摸鱼)就是解决上报的crash了。有的crash的解决还是非常考验能力的,解决完疑难crash也非常有成就感。所以想记录自己在解决crash过程中的思路...
iOS | GCDTimer 解读和应用
前言 在iOS开发中,大家肯定用过不少定时器,NSTimer是我们开发中用的最多的,当然,说起精度更好的,那肯定是GCDTimer了,那么GCDTimer为什么比NSTimer更准确?它的原理和应用是怎样的?我根据...
UICollectionView自定义layout实现按需算高
更多精彩内容,欢迎关注作者微信公众号:码工笔记 最近遇到一个需要对UICollectionView自定义layout的情况,之前对这块不太熟悉,研究了一下,在此记录一下结论。 一、背景 考虑以下场景: 每个...
iOS中的内存管理|ARC
iOS 采用什么内存管理方式 在 iOS 中,采用自动引用计数(ARC,Automatic Reference Counting)机制来进行内存管理,让编译器来帮助内存管理,无需程序员手动键入 retain、release 等代码进行内...
iOS |关于触摸事件的传递机制以及响应流程
前言 平日我们在玩手机,当我们的手指点击的当人手在点击屏幕时,系统会根据我们的手指动作产生一个触屏事件,这个事件可以是点击、拖动、缩放等手势,我们统称为触屏事件。那么系统是如何根据...
Weak 变量在对象释放时到底发生了什么?
TLDR: 访问 weak 变量与读取 weak 变量的内存是两回事。区别见下图。 >= iOS 16 苹果提供了指定类在特定线程释放的方法,可以做一个参考。 问题提出 真实案例,都脱胎于业务代码,有历史积...
UITableView顶部突然出现一块空白问题
有一天突然测试和我说页面布局有问题,但是在我的测试机中并没有复现这个问题。但是在测试那边确实复现了。 经过调研,如果你发现你的tableview 的section header总是有一片空白,那是因为 在iOS...
Swift 最佳实践之 High Performance
Swift 作为现代、高效、安全的编程语言,其背后有很多高级特性为之支撑。 『 Swift 最佳实践 』系列对常用的语言特性逐个进行介绍,助力写出更简洁、更优雅的 Swift 代码,快速实现从 OC 到 Swi...
Swift 中async/await 简单使用
在 Swift 5.5 中,终于加入了语言级别的异步处理 async/await,这应该会让用回调闭包写异步调用方法时代彻底结束了! 这篇文章就简单总结一下这个功能使用吧。 异步函数 所谓异步,是相对于同步...
Xcode15Beta填坑-修复YYLabel的Crash问题
前言 趁着版本空隙,升级到了Xcode15-Beta2本想提前体验下iOS17。本以为这次升级Xcode能直接运行应该没什么大问题,没曾想到一运行后程序直接Crash了,Crash是在YYLabel下的YYAsyncLayer类里面...
iOS|ARC中performSelector的内存泄漏问题
前言 我们平时开发中,如果使用的是ARC模式,那么一旦使用performSelector去调用函数,就一定会出现下面的内存警告现象。 你可能会疑惑,只不过是用了 “performSelector:” 去调用方法,为什么...
iOS:NSNotification.Name从OC到Swift的写法演进
前言 在闲来无事的时候,我会抽时间看看Foundation、UIKit等相关库的Swift代码说明与注释。说实话,有的时候看起来真的很乏味,也不容易理解。 不过有的时候也会觉得Apple这么设计API真是书写的...
iOS |iOS进阶必须掌握的常用的runtime方法
前言 在平日的iOS开发中,最常见的的用到runtime的应该就是分类添加属性了,我们平时在类里使用@property添加属性的时候,系统会自动生成带“”做前缀的的成员变量以及该变量的setter和getter方...
iOS |关于RunLoop与空闲队列
前言 相信每一个中高级iOS开发者即使不怎么深入了解过iOS的runLoop机制,但是都听过runLoop这玩意。平时搜索中最多的用处就是用来监听卡顿啥的,但是你们是否知道我们还可以用来做空闲队列的应...
Flutter-Key及GlobalKey的使用
1.Key的原理 什么Key? 先上代码: class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter ...
iOS:KSCrash在项目中的实践
前言 上周看了一篇掘友的文章——APM - iOS Crash监控 KSCrash代码解析,主要就是对KSCrash这个框架的源码做了分析。 最近手上正好有个项目要集成崩溃跟踪相关功能,仔细看了一下掘友的这篇文章...
百度APP iOS端包体积50M优化实践(三) 资源优化
01 前言 百度APP iOS端包体积优化系列文章的前两篇重点介绍了包体积优化整体方案、各项优化收益和图片优化方案,图片优化是从无用图片、Asset Catalog和HEIC格式三个角度做深度优化。本文重点介...
iOS开发中你必须掌握的单例模式:OC与Swift实现对比
单例模式是iOS开发中常见的设计模式之一,作为一种经典的设计模式,它能够保证在整个应用程序中只会创建一个对象实例。在iOS开发中,我们常常需要在多个地方使用同一个对象,这时候通过单例模式...
选取或导入系统文件:UIDocumentPickerViewController指南
在 iOS 开发中,有时我们需要支持导入和打开系统/自定义类型的文件。例如,我们可能需要支持从邮件、iCloud Drive 或其它应用程序打开 PDF 或 Word 文档,或者我们可能需要支持导入以自定义格式...
iOS 陀螺仪技术的应用探究
本文源自本人的学习记录整理与理解,其中参考阅读了部分优秀的博客和书籍,尽量以通俗简单的语句转述。引用到的地方如有遗漏或未能一一列举原文出处还望见谅与指出,另文章内容如有不妥之处还望...