iOS开发
文章平均质量分 57
FiTeen
个人博客 https://blog.fiteen.top
展开
-
如何实现 iOS App 的冷启动优化
欢迎访问我的博客原文文章目录热启动与冷启动冷启动概要pre-main 阶段查看阶段耗时理论知识Mach-Odylibdylddyld shared cacheimagesframework启动过程分析与优化Load DylibsRebase/BindingObjC SetupInitializersmain() 阶段查看阶段耗时启动优化小结当 App 中的业务模块越来越多、越来越复杂,集成...原创 2020-03-12 01:35:39 · 551 阅读 · 0 评论 -
深度理解 NSURLProtocol
欢迎访问我的博客原文NSURLProtocol 是什么NSURLProtocol 是 Foundation 框架中 URL Loading System 的一部分。它可以让开发者可以在不修改应用内原始请求代码的情况下,去改变 URL 加载的全部细节。换句话说,NSURLProtocol 是一个被 Apple 默许的中间人攻击。虽然 NSURLProtocol 叫“Protocol”,却不...原创 2020-03-02 14:13:21 · 2254 阅读 · 0 评论 -
iOS 内存泄漏场景与解决方案
欢迎访问我的博客原文内存泄漏指的是程序中已动态分配的堆内存(程序员自己管理的空间)由于某些原因未能释放或无法释放,造成系统内存的浪费,导致程序运行速度变慢甚至系统崩溃。在 iOS 开发中会遇到的内存泄漏场景可以分为几类:循环引用当对象 A 强引用对象 B,而对象 B 又强引用对象 A,或者多个对象互相强引用形成一个闭环,这就是循环引用。BlockBlock 会对其内部的对象强引用,...原创 2020-02-23 12:24:32 · 908 阅读 · 0 评论 -
iOS 应用签名原理
欢迎访问我的博客原文不少果粉对 Apple 钟情,与它的纯净、安全有很大关系,我们发现在苹果的设备上下载应用时,不会出现触发下载一系列垃圾软件的情况,而且用户可以明确 App 的来源——通过官方商店 AppStore 购买、企业证书安装还是 TestFlight 下载。为了防止盗版软禁、病毒入侵、静默安装以及屏蔽其它不可控因素,并确保每一个安装到 iOS 设备上的应用都是被官方允许的,苹果设...原创 2020-02-22 23:25:18 · 449 阅读 · 0 评论 -
iOS runtime 机制解读(结合 objc4 源码)
欢迎访问我的博客原文Runtime 是指将数据类型的确定由编译时推迟到了运行时。它是一套底层的纯 C 语言 API,我们平时编写的 Objective-C 代码,最终都会转换成 runtime 的 C 语言代码。不过,runtime API 的实现是用 C++ 开发的(源码中的实现文件都是 .mm 文件)。为了更全面地理解 runtime 机制,我们结合最新的objc4 源码来进行解读。...原创 2020-02-22 11:58:47 · 506 阅读 · 0 评论 -
App 多渠道打包及重签名方案
我的博客原文地址众所周知,渠道包是国内 Android 应用市场中常用的分发方式。渠道包中会包含不同的渠道信息,方便我们后续统计 App 在各分发渠道的下载量、用户量、留存率等,有针对地调整应用内容或是推广方案等。随着国内 iOS 应用上架越来越难,衍生出了很多企业包,为了方便采集数据,也会用多渠道的方案。另外,项目进展过程中,可能会出现一些临时新增渠道的需求,这时回到工程中重新打包是比较...原创 2020-02-18 16:54:38 · 680 阅读 · 0 评论 -
【译】Fucking SwiftUI
原文:Fucking Swift UI - Cheat Sheet译者的话:翻译过程中,发现了原文中的几个错误,我向作者@sarunw提出意见后,直接在译文中改掉了,如果您发现文中内容有误,欢迎与我联系。关于 SwiftUI,您在下文中看到的所有答案并不是完整详细的,它只能充当一份备忘单,或是检索表。常见问题关于 SwiftUI 的常见问题:是否需要学 SwiftUI?是是否有必...原创 2020-02-18 15:57:41 · 4679 阅读 · 0 评论 -
iOS 中 framework 和 bundle 的制作
我的博客原文地址FrameworkFramework 是资源的集合,将静态库和其头文件包含到一个结构中,让 Xcode 可以方便地把它纳入到你的项目中。在运行时,库中按你的想法暴露需要的头文件,整个工程都可以调用暴露出来的接口和参数,这样减少了内存消耗,提高了系统的性能。为什么使用 framework与别人分享自己开发的组件,有两种方式。直接提供源代码。将组件代码编译成静态库...原创 2020-02-18 15:25:11 · 807 阅读 · 0 评论 -
iOS进阶之巧用IBInspectable属性和IB_DESIGNABLE宏定义
交互设计和UI设计水准很大程度影响着用户对应用的评价,iOS开发发展至今已逾10年,开发者对于界面UI编码的习惯逐渐分化成三大流派:code - 易追踪、可复用、便于版本控制,但不直观xib - 简单便捷、直观、一一对应,但易冲突storyboard - 逻辑清晰、简单易用、直观高效,虽易冲突、复用性不佳,但仍是未来趋势原创 2017-08-24 10:35:43 · 1045 阅读 · 2 评论 -
iOS购物车设计模式浅析及代码实现
iOS模仿淘宝的购物车逻辑与代码实现原创 2017-08-17 08:57:06 · 4725 阅读 · 0 评论 -
模拟器运行报错resource fork, Finder information, or similar detritus not allowed解决方案
升级到macOS Sierra后,原先好端端的工程在模拟器下编译会遇到如下的错误:解决方案如下:1、关闭Xcode,打开终端;2、在命令行输入:cd+空格+项目文件夹的完整路径(可以通过将文件夹拉入终端自动生成),回车;3、在命令行继续输入:xattr -rc .(注意:rc和.之间有空格),回车;4、打开Xcode,重新运行项目,错误消失。原创 2017-03-20 16:50:30 · 2059 阅读 · 0 评论 -
OC版正则表达式验证邮箱和身份证真伪
创建一个NSPredicate的分类:NSPredicate+HMAdditions在.h中:#import @interface NSPredicate (HMAdditions)+ (BOOL)checkEmail:(NSString *)email;+ (BOOL)checkIDNumber:(NSString *)IDNumber;@end原创 2016-10-11 09:24:24 · 868 阅读 · 0 评论 -
iOS页面自动跳转
在实际开发时,例如支付完毕或是点击推送消息后,经常需要进行页面的跳转,以下我总结了三类情况:根据指定的index返回controllerNSArray * ctrlArray = self.navigationController.viewControllers;[self.navigationController popToViewController:[ctrlArray ob原创 2016-08-09 17:26:35 · 940 阅读 · 0 评论 -
利用KVC模式更改UISearchBar的图片和placeholder字体颜色
在实际开发中,我们经常需要重新定义UI控件,要修改对象属性,可以借助KVC模式。下面以更改搜索栏图片和字体颜色为例,实现代码如下: KVC设计模式是什么呢? Key-value coding,是一种使用字符串标识符,间接访问对象属性的机制,而不是直接调用存取方法(即getter和setter方法)。通常我们使用valueForKey来替代ge原创 2016-09-25 10:44:36 · 734 阅读 · 0 评论