摘要: 摘要 项目中很大几率会用到第三方库,通过 Pod 方式引入第三方库是效率很高的方式,这里介绍一个新的项目搭建 Pod 方式的环境,方便项目中引入第三方库文件。 刚创建的项目中如果需要用到第三方库,常用的方式是通过 Pod 来添加,方便后面的第三方库的更新;还有另外一种是下载第三方库的源码文件,整个添 阅读全文
posted @ 2021-12-16 21:33 我为双鱼狂 阅读(200) 评论(0) 推荐(0) 编辑
 
摘要: 刚创建一个新的项目,在 `AppDelegate` 中设置 `rootViewController` 来确定应用的首页是一个最基本的处理,因为是不常操作的处理,所以容易忽略其中的某个步骤,导致无法设置成功。所以记录下来,以备快速查找。 阅读全文
posted @ 2021-12-15 21:28 我为双鱼狂 阅读(387) 评论(0) 推荐(0) 编辑
 
摘要: Alamofire 更新到新版本时,遇到了两个错误❌和一个警告⚠️,所以记录下来它们,以及如何解决它们。给其他出现类似问题的同道一些解决的方向。 阅读全文
posted @ 2021-12-09 18:09 我为双鱼狂 阅读(424) 评论(0) 推荐(0) 编辑
 
摘要: 摘要 基础数据的运算可以直接使用四则运算符。在 Swift 中也可以通过重写四则运算符的方式,让 struct 或者 class 创建的结构体或者对象也能像基础数据那样直接使用四则运算符。 Swift 中有经常用到加、减、乘、除的操作,在代码中编写这些操作,实现功能中需要的基础计算。比如下面代码中实 阅读全文
posted @ 2021-12-07 20:57 我为双鱼狂 阅读(175) 评论(0) 推荐(0) 编辑
 
摘要: 摘要 iOS 中图像的表现形式不只是 Image,还有更加底层的方式,比如 CVPixelBuffer 像素缓存形式,那么 CGImage 就可以转换为像素缓存的方式也是需要了解的。 CGImage 苹果官方解释是一张 bitmap 图像或者图像 mask。它是 UIImage 类中的一个属性,并可 阅读全文
posted @ 2021-11-30 21:00 我为双鱼狂 阅读(257) 评论(0) 推荐(0) 编辑
 
摘要: 摘要 Swift 中图像的表现形式不只是 Image,还有更加底层的方式,比如 CVPixelBuffer 像素缓存形式,那么像素缓存转换为可以在应用中展示的 CGImage,就要知道有哪些处理了。 CGImage 苹果官方解释是一张 bitmap 图像或者图像 mask。它是 UIImage 类中 阅读全文
posted @ 2021-11-25 20:27 我为双鱼狂 阅读(240) 评论(0) 推荐(0) 编辑
 
摘要: 摘要 iOS 开发,尤其是从 OC 转换到 Swift,对 Array 需要重新了解,Swift 中保留了什么属性,增加了什么属性,内存存储是什么情况等等,了解了这些,在使用 Array 的时候可以更符合 Swift 的思想,也方便了自己。 Array 是应用程序中最常用的数据类型之一,可以使用 A 阅读全文
posted @ 2021-11-23 20:00 我为双鱼狂 阅读(116) 评论(0) 推荐(0) 编辑
 
摘要: 摘要 按钮是一个宝藏控件,可以在设置的时候就对不同的状态添加图片、文本,甚至更改背景。在不同的展示场景中更改到不同的状态显示就好。恰恰是如何更改状态着实让我懵了一阵,所以记录一下过程。如果没有兴趣了解过程,可以直接滑到底部,截图表格收藏。 之前在处理一个按钮控件,按钮有可以点击和禁止点击两个不同的状 阅读全文
posted @ 2021-11-18 20:44 我为双鱼狂 阅读(413) 评论(0) 推荐(1) 编辑
 
摘要: 摘要 实现控件圆角的代码时,会不假思索的写 cornerRadius 和 masksToBounds,因为搜索得到的设置圆角的代码就是这样。今天突发奇想,为什么要写 masksToBounds? 打个比方,设置一个按钮的圆角是 5,我会立马写这两行代码: btn.layer.cornerRadius 阅读全文
posted @ 2021-11-16 20:20 我为双鱼狂 阅读(278) 评论(0) 推荐(0) 编辑
 
摘要: 摘要 Xcode 编译工程代码时,出现编译错误时除了红色图标外,还会附送几句英文文本。 常规操作拷贝英文文本,放到搜索框中找答案,但是读懂这几句话能事半功倍。 项目中如果有 OC 和 Swift 两种语言的代码,那么桥接文件(xx-Bridging.h)必然是要创建的,它作为桥梁,使得项目中的 OC 阅读全文
posted @ 2021-11-12 21:28 我为双鱼狂 阅读(430) 评论(0) 推荐(0) 编辑
 
摘要: 摘要 Framework 就是在 APP 应用中的一种封装功能的表现形式,虽然不能独立运行,但是也可以在它里面存放和访问图片、语音等资源文件,可算是麻雀虽小,五脏俱全。 毕竟不是 APP 工程,所以 Framework 中访问资源文件的方式就略有不同,下面进入正题 - Framework 中访问资源 阅读全文
posted @ 2021-11-09 20:56 我为双鱼狂 阅读(342) 评论(0) 推荐(0) 编辑
 
摘要: 摘要 平时实现拍照功能时,都是网上一通搜索,整体复制粘贴,自称无脑实现。但是当要求照片是不同的尺寸和格式( JPEG)时,就费力搞照片。其实在设置拍照时,就可以直接设置照片的尺寸和格式,用直接的方法来满足要求,岂不更好? 开始拍照前,需要创建 AVCaptureSession 会话对象,如果仅仅是拍 阅读全文
posted @ 2021-11-05 10:06 我为双鱼狂 阅读(587) 评论(0) 推荐(0) 编辑
 
摘要: 最近看 iOS 的官方功能的 Demo 时,发现代码中使用元组的地方很多,所以兴趣上来,查了下元组的出处。 在苹果的文档中就只有简短的两句,使用元组创建一个组合的值,从函数中返回多个值。元组中的可以使用属性值或者索引引用。 Apple Documentation Use a tuple to mak 阅读全文
posted @ 2021-11-04 09:20 我为双鱼狂 阅读(172) 评论(0) 推荐(0) 编辑
 
摘要: 摘要 本文介绍模糊脸部的功能逻辑和实现方式,实现方式会尽可能的使用苹果提供的 API,保证功能高效率和简洁。 逻辑 模糊脸部的逻辑主要有两个流程,就是先找到脸部,然后模糊脸部,那么就引申出这两个实现问题: 如何正确找到脸部区域? 如何只模糊脸部区域? 依次解决这两个问题,那么这个功能就已经轻松实现了 阅读全文
posted @ 2021-11-03 10:58 我为双鱼狂 阅读(230) 评论(0) 推荐(0) 编辑
 
摘要: 摘要 直接操作图片来实现它的缩放或者填充多余空间,首选 UIGraphicsBeginImageContext 函数来实现,它就相当于一个画布,你甚至可以用它来涂鸦。 最近有一个需求,就是将图片先等比例缩放到指定大小,然后将空余出来空间填充为黑色,返回指定大小的图片。 这种直接操作图片的需求,就要考 阅读全文
posted @ 2021-11-02 09:00 我为双鱼狂 阅读(283) 评论(0) 推荐(0) 编辑
 
摘要: AVL 树 是最早时期发明的自平衡二叉搜索树之一。是依据它的两位发明者的名称命名。 AVL 树有一个重要的属性,即平衡因子(Balance Factor),平衡因子 == 某个节点的左右子树高度差。 AVL 树特点总结下来有: 每个节点的平衡因子有且仅有 1、0、-1,若超过这三个值的范围,就称其为 阅读全文
posted @ 2021-10-24 20:22 我为双鱼狂 阅读(229) 评论(0) 推荐(0) 编辑
 
摘要: 摘要 近期对接客户时,客户方希望提供 SDK 的性能、内存、隐私支持等一些数据,所以就对 SDK 进行了一些性能测试。 在用表格统计整理这些数据时,突然发现,经常用统计的方式看 SDK 的相关数据,似乎也是一个发现优化的好方式。 所以想记录下来统计表格式、测试工具等,方便后面去优化 SDK。 SDK 阅读全文
posted @ 2021-10-23 15:27 我为双鱼狂 阅读(258) 评论(0) 推荐(1) 编辑
 
摘要: 摘要 二叉搜索树的特性-节点的左侧部分比它小,右侧部分比它大,使得二叉搜索树在查找节点有二分法的效果,也提高了它的添加和删除处理,毕竟添加和删除也是先查找位置,然后再处理。 平衡二叉搜索树就是持续保证这样的高效性,进入正题: 二叉搜索树在添加或者删除的过程中,在一些场景下退化为链表,比如对比一组数据 阅读全文
posted @ 2021-10-14 21:05 我为双鱼狂 阅读(75) 评论(0) 推荐(0) 编辑
 
摘要: 摘要 如果使用线性表存放 n 个元素时,时间复杂度是 O(n)。如果使用二分法搜索,可以降低时间复杂度,为 O(logn),但是添加和删除的平均时间复杂度是 O(n)。 使用二叉搜索树,可以让添加、删除、搜索的最坏时间复杂度优化到 O(logn)。 二叉搜索树,英文为 Binary Search T 阅读全文
posted @ 2021-10-12 20:32 我为双鱼狂 阅读(329) 评论(0) 推荐(0) 编辑
 
摘要: 遍历是数据结构中的常见操作,就是把所有的元素遍历一遍。 线性结构的遍历无非是两种,正序遍历和逆序遍历,也就是从头依次遍历或者从尾依次遍历。 二叉树的遍历方式有 4 种,是根据不同的节点访问顺序来区分: 遍历方法 访问顺序 备注 前序遍历(Preorder Traversal) 根节点、左子树、右子树 阅读全文
posted @ 2021-10-10 20:58 我为双鱼狂 阅读(263) 评论(0) 推荐(0) 编辑
  2021年12月3日
摘要: 摘要 Protocol 是 Swift 中实现面向协议编程思想的重要部分。在使用过程中有遇到协议中声明的部分,但是在遵守部分不需要实现的,那么就需要使用 extension 参与进来,让 Protocol 使用的更加灵活,得心应手。 Protocol 是 Swfit 中重要的编程方式,也就是面向协议 阅读全文
posted @ 2021-12-03 20:53 我为双鱼狂 阅读(184) 评论(0) 推荐(0) 编辑