自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FiTeen's Blog

https://blog.fiteen.top

  • 博客(23)
  • 收藏
  • 关注

原创 如何实现 iOS App 的冷启动优化

欢迎访问我的博客原文文章目录热启动与冷启动冷启动概要pre-main 阶段查看阶段耗时理论知识Mach-Odylibdylddyld shared cacheimagesframework启动过程分析与优化Load DylibsRebase/BindingObjC SetupInitializersmain() 阶段查看阶段耗时启动优化小结当 App 中的业务模块越来越多、越来越复杂,集成...

2020-03-12 01:35:39 678

原创 Hexo + inside 博客个性化定制

欢迎访问我的博客原文我的博客采用的是 Hexo 官方网站上相中的 hexo+theme+inside 主题。虽然开发者已经提供了主题的使用文档,但是作为一款小众的主题,一些常用功能的定制并不是那么完善,不过贴心的开发者提供了 plugins 配置方案。下文总结了部分功能的拓展方案,可供需要的朋友参考。plugin 前置准备themes/inside/_config.yml 中的 pl...

2020-03-08 16:10:53 1720 4

原创 深度理解 NSURLProtocol

欢迎访问我的博客原文NSURLProtocol 是什么NSURLProtocol 是 Foundation 框架中 URL Loading System 的一部分。它可以让开发者可以在不修改应用内原始请求代码的情况下,去改变 URL 加载的全部细节。换句话说,NSURLProtocol 是一个被 Apple 默许的中间人攻击。虽然 NSURLProtocol 叫“Protocol”,却不...

2020-03-02 14:13:21 2319

原创 iOS 内存泄漏场景与解决方案

欢迎访问我的博客原文内存泄漏指的是程序中已动态分配的堆内存(程序员自己管理的空间)由于某些原因未能释放或无法释放,造成系统内存的浪费,导致程序运行速度变慢甚至系统崩溃。在 iOS 开发中会遇到的内存泄漏场景可以分为几类:循环引用当对象 A 强引用对象 B,而对象 B 又强引用对象 A,或者多个对象互相强引用形成一个闭环,这就是循环引用。BlockBlock 会对其内部的对象强引用,...

2020-02-23 12:24:32 945

原创 iOS 应用签名原理

欢迎访问我的博客原文不少果粉对 Apple 钟情,与它的纯净、安全有很大关系,我们发现在苹果的设备上下载应用时,不会出现触发下载一系列垃圾软件的情况,而且用户可以明确 App 的来源——通过官方商店 AppStore 购买、企业证书安装还是 TestFlight 下载。为了防止盗版软禁、病毒入侵、静默安装以及屏蔽其它不可控因素,并确保每一个安装到 iOS 设备上的应用都是被官方允许的,苹果设...

2020-02-22 23:25:18 480

原创 iOS runtime 机制解读(结合 objc4 源码)

欢迎访问我的博客原文Runtime 是指将数据类型的确定由编译时推迟到了运行时。它是一套底层的纯 C 语言 API,我们平时编写的 Objective-C 代码,最终都会转换成 runtime 的 C 语言代码。不过,runtime API 的实现是用 C++ 开发的(源码中的实现文件都是 .mm 文件)。为了更全面地理解 runtime 机制,我们结合最新的objc4 源码来进行解读。...

2020-02-22 11:58:47 536

原创 程序员面试必备——红黑树详细图解

欢迎访问我的博客原文红黑树(Red Black Tree)是一种自平衡的二叉搜索树(Self-balancing Binary Search Tree)。以前也叫做平衡二叉 B 树(Symmetric Binary B-tree)。预备知识树的知识框架结构如下图所示:平衡二叉搜索树平衡二叉搜索树(Balanced Binary Search Tree),英文简称 BBST。经典常见...

2020-02-22 11:06:31 310

原创 程序员面试必备——动画详解十大经典排序算法(C语言版)

博客原文地址排序算法是程序员必备的基础知识,弄明白它们的原理和实现很有必要。本文中将通过非常细节的动画展示出算法的原理,配合代码更容易理解。概述由于待排序的元素数量不同,使得排序过程中涉及的存储器不同,可将排序方法分为两类:一类是内部排序,指的是待排序列存放在计算机随机存储器中进行的排序过程;另一类是外部排序,指的是待排序的元素的数量很大,以致内存一次不能容纳全部记录,在排序过程中尚需对...

2020-02-18 20:17:20 1949

原创 App 多渠道打包及重签名方案

我的博客原文地址众所周知,渠道包是国内 Android 应用市场中常用的分发方式。渠道包中会包含不同的渠道信息,方便我们后续统计 App 在各分发渠道的下载量、用户量、留存率等,有针对地调整应用内容或是推广方案等。随着国内 iOS 应用上架越来越难,衍生出了很多企业包,为了方便采集数据,也会用多渠道的方案。另外,项目进展过程中,可能会出现一些临时新增渠道的需求,这时回到工程中重新打包是比较...

2020-02-18 16:54:38 694

原创 【译】Fucking SwiftUI

原文:Fucking Swift UI - Cheat Sheet译者的话:翻译过程中,发现了原文中的几个错误,我向作者@sarunw提出意见后,直接在译文中改掉了,如果您发现文中内容有误,欢迎与我联系。关于 SwiftUI,您在下文中看到的所有答案并不是完整详细的,它只能充当一份备忘单,或是检索表。常见问题关于 SwiftUI 的常见问题:是否需要学 SwiftUI?是是否有必...

2020-02-18 15:57:41 5038

原创 iOS 中 framework 和 bundle 的制作

我的博客原文地址FrameworkFramework 是资源的集合,将静态库和其头文件包含到一个结构中,让 Xcode 可以方便地把它纳入到你的项目中。在运行时,库中按你的想法暴露需要的头文件,整个工程都可以调用暴露出来的接口和参数,这样减少了内存消耗,提高了系统的性能。为什么使用 framework与别人分享自己开发的组件,有两种方式。直接提供源代码。将组件代码编译成静态库...

2020-02-18 15:25:11 842

原创 iOS进阶之巧用IBInspectable属性和IB_DESIGNABLE宏定义

交互设计和UI设计水准很大程度影响着用户对应用的评价,iOS开发发展至今已逾10年,开发者对于界面UI编码的习惯逐渐分化成三大流派:code - 易追踪、可复用、便于版本控制,但不直观xib - 简单便捷、直观、一一对应,但易冲突storyboard - 逻辑清晰、简单易用、直观高效,虽易冲突、复用性不佳,但仍是未来趋势

2017-08-24 10:35:43 1093 2

原创 iOS购物车设计模式浅析及代码实现

iOS模仿淘宝的购物车逻辑与代码实现

2017-08-17 08:57:06 4739

原创 阿里云直播鉴权和直播地址算法

URL鉴权功能是通过阿里云CDN加速节点与客户资源站点配合实现的一种更为安全可靠的源站资源防盗方法。由客户站点提供给用户加密 URL(包含权限验证信息),用户使用加密后的 URL 向加速节点发起请求,加速节点对加密 URL 中的权限信息进行验证以判断请求的合法性,对合法请求给予正常响应,拒绝非法请求,从而有效保护客户站点资源。

2017-06-29 10:31:46 5387

原创 模拟器运行报错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 2069

原创 在mac上安装Android Studio

一、安装java环境,若已安装可忽略1)进入java SE Downloads官网(链接),下载最新版的Mac OS X系统对应的dmg安装包;选择Java Platform2)安装pkg包,可通过终端命令:java -version 来查看;二、安装Android Studio1)进入Android Studio中文社区(链接)下载好Mac平台对应的安装包

2016-12-06 09:55:44 553

原创 如何在Xcode8上安装插件

推出Xcode8已有两个多月,也有不少朋友分享了安装插件的方法,笔者在这里整理了一个亲测有效的方法。1、更新Xcode,目前最新版本是8.1;2、由于安装插件会影响原来的Xcode打包上传,我们在应用程序里复制一个Xcode,并重命名为XcodeSigner;3、打开钥匙串,创建新证书,名称填XcodeSigner,证书类型选择代码签名(Code Signing);

2016-11-30 12:02:38 2125

原创 OC版正则表达式验证邮箱和身份证真伪

创建一个NSPredicate的分类:NSPredicate+HMAdditions在.h中:#import @interface NSPredicate (HMAdditions)+ (BOOL)checkEmail:(NSString *)email;+ (BOOL)checkIDNumber:(NSString *)IDNumber;@end

2016-10-11 09:24:24 885

原创 Xcode代码块生成和移植的小技巧

为了节省时间,“爱偷懒”的程序员都会选择使用一些代码片段来提升开发效率。例如将UITableView、UIWebView等的懒加载和协议方法作为代码块放入Xcode中,可节省大量重复的工作。如何生成代码块?在Xcode代码编辑栏里写好你想要作为代码块的代码,选中后拖入Xcode右下角的栏目中,见下图。自定义参数的部分以 的形式写在编辑栏内。双击代码块点击Edit完

2016-10-09 17:00:58 1457

原创 Xcode如何通过Coding.net托管代码

介绍Coding.net的使用方法

2016-10-09 09:06:45 1874

原创 利用KVC模式更改UISearchBar的图片和placeholder字体颜色

在实际开发中,我们经常需要重新定义UI控件,要修改对象属性,可以借助KVC模式。下面以更改搜索栏图片和字体颜色为例,实现代码如下:                KVC设计模式是什么呢?        Key-value coding,是一种使用字符串标识符,间接访问对象属性的机制,而不是直接调用存取方法(即getter和setter方法)。通常我们使用valueForKey来替代ge

2016-09-25 10:44:36 745

原创 Xcode 8 新特性

依照苹果一贯的风格,今天,发布iOS10的同时,程序员们期待已久的Xcode8也问世了。它更新了哪些大家感兴趣的部分呢,翻译AppStore提供的更新内容。

2016-09-14 10:04:20 1304

原创 iOS页面自动跳转

在实际开发时,例如支付完毕或是点击推送消息后,经常需要进行页面的跳转,以下我总结了三类情况:根据指定的index返回controllerNSArray * ctrlArray = self.navigationController.viewControllers;[self.navigationController popToViewController:[ctrlArray ob

2016-08-09 17:26:35 946

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除