Posts
tuyw
Cancel

0x1 前言 本文将分享使用Objective-C语言实现一种高可用、易扩展的App设置页。在demo中将会以淘宝、货拉拉的设置页面为例进行讲述。 0x2 分析 如图所示,分析对比以下三张图: 1.确定易变部分。 每一行的cell内容与其点击事件属于易变部分,跟随业务需求进行变化 整体设置页面的结构也属于易变部分,但不在本文讨论范围。 2.根据页面结构确...

0x1 前言 在iOS中,使用nil指针调用OC的方法是安全的,但是使用nil指针调用block却会产生崩溃。本篇文章,将会从汇编的角度解释该现象。 0x2 block的结构 Block 的结构可以在 Runtime 的开源代码Objc4-706 中找到,它位于 Block-private.h 中: struct Block_layout { void *isa; vo...

0x1 前言 在上一篇文章iOS 内存优化之工具介绍中提到利用leaks工具进行排查内存问题的最佳实践方案,本篇文章是对其的补充,这里将讲述录制UITest和自动导出内存图过程的具体实践。 这里对导出内存图的方式提供两种方案 1.xcodebuild test + 性能测试(XCTMemoryMetric) 2.xcodebuild test + expect + lldb + le...

0x1 前言 本文将介绍如何使用Xcode检测和诊断内存问题。首先需要了解内存构成,内存占用对app的影响、以及一些常见的内存问题。最后将介绍leaks、vmmap、malloc_history等工具来分析定位内存问题。 系统的内存是有限,更低的、合理的使用内存能使app获得更好的体验: 更快的应用程序激活(提高热启动概率,避免进入后台后,因占据较大内存被系统回收进程) 更快速...

前言 设计模式是什么?它是一套理论,由软件界的先辈们(The Gang of Four:包括Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)总结出的一套可以反复使用的经验,它可以提高代码的可重用性,增强系统的可维护性,以及解决一系列的复杂问题。做软件的人都知道需求是最难把握的,我们可以分析现有的需求,预测可能发生的变更,但是我们不...

KSCrash是一个异常收集的开源框架.是目前仍在维护,并且相对稳定的框架.国内微信团队开源的Matrix框架的异常收集功能也是基于KSCrash进行的二次开发. KSCrash功能点: 支持符号化 生成完整的Apple crash报告 支持32位和64位模式 支持所有的苹果设备,包括Apple Watch 处理只在Mach级别的错误,比如堆栈溢出 捕获C++异常...