![](https://img-blog.csdnimg.cn/20210111113419352.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
iOS开发之华山论剑
文章平均质量分 72
iOS开发之开发经验 从小白到傻白甜~
神经骚栋
IT界无底坑洞栋主
展开
-
Mac M1 与 M2环境快速安装Homebrew
的前置条件homebrew时, 速度是非常缓慢的, 很多时候我们等半天也没有反应. 今天就来分享一下别的大佬构建的快速安装Homebrew脚本. 如果先前是🐌蜗牛速度, 那现在就是🚀火箭速度.文件末尾追加下面代码。如果先前设置了Homebrew 环境就不需要添加了.由于国内墙的问题, 所以我们在安装。直接使用一下命令, 安装默认使用。然后还需要设置下环境变量,在。原创 2023-09-21 16:50:33 · 289 阅读 · 0 评论 -
基于Swift的单元测试尝试
近期遇到了一个问题, 那就是由于自己的疏忽, 导致了线上事故, 有错就要立正挨打. 其实这种问题, 我们开发过程中是经常性会遇到. 不管是由于业务任务繁多导致的疏忽, 还是由于其他紧急任务导致的连锁影响, 都是会造成先前一些业务的异常case.作为一个业务开发人员, 其实很少会自己去写关于业务的单元测试. 原因主要有:业务任务过于繁重, 很多开发同学疲于任务开发, 能按时提测就已经很不错了.单元测试的介入实际上是有一定的入侵性的, 需要对一些业务逻辑结构进行改造, 这无疑是加重了工作强度.原创 2023-08-23 14:32:28 · 385 阅读 · 2 评论 -
AppStore上架被拒原因收集(整理/转载)
1、应用内包含检查更新功能iOS 应用的版本更新必须通过 App Store 进行,自身 App 内不能包含提示更新功能。从2015年3月起,所有包含检查更新功能的 App 都会被拒绝上架。原创 2023-08-19 17:13:41 · 200 阅读 · 0 评论 -
SnapFloatLayout : 自动约束布局效率神器
自动约束布局效率神器! 选他就对了!原创 2023-06-26 14:26:39 · 130 阅读 · 0 评论 -
MasonryFloatLayout : 基于Masonry的浮动布局
前言在iOS中使用Masonry进行布局算是日常操作,但是类似于网页的浮动布局的时候,流式布局的示意图如下.移除其中的某个元素,剩下的元素就会往某个方向进行移动,在Web端,这种布局方式就叫做浮动布局.另外还有下面的这种情况,虽然也进行浮动但是仍然还另外一边保持着约束关系,这一种在iOS也是比较常见的约束情况.在iOS的Masonry使用实现上述过程其实非常麻烦的,如果是我们基于Masonry,基于这种情况,我们一般会有两种写法,一种是状态穷举法,另外一种是临时视图变量记录法.状态穷举法..原创 2021-03-29 01:35:11 · 1712 阅读 · 2 评论 -
SDVideoCamera:仿抖音(视频录制、视频剪辑、视频合成)
闲话不多讲,先上项目Github传送门。SDVideoCamera传送门前言又是好久没有更新博客了,哈哈哈,由于近来从公司离职,再加上近来要结婚的缘故,所以有大量充足的时间来整理以前写的一个仿写抖音录制的三方库。但是讲真的,写了将近一个月的时间,还有有很多细节没有实现,只是实现其核心功能,还是有很多地方可以优化的。另外抖音是使用FFmpeg来实现音视频处理的业务逻辑的,相比于AVFoundation,具有跨平台、执行效率高的特点。所以作为一个菜鸡,只能使用AVFoundation来实现视频处理了.原创 2021-01-24 03:17:30 · 1985 阅读 · 1 评论 -
浅谈Constraints,Layout,Display的点点滴滴
前言这篇博客完全是因为 浅谈Masonry的使用技巧 才引出来的,如果不是内容太多,也不会单独写一篇博客来记录,在9102一整年中我基本与普通UI开发无缘,大部分工作是对Layout进行操作绘制,以及使用CoreGraphics框架绘制各种图形,所以对Layout和Display的系统方法还是比较了解,近期又开始使用Masonry,所以对Constraints相关系统方法需要有所了解,而且在 浅谈Masonry的使用技巧 这篇博客中的优化部分不得不提出Constraints相关系统方法对其的影响。那..原创 2021-01-24 03:15:03 · 490 阅读 · 0 评论 -
浅谈Masonry的使用技巧
前言讲真的,搞事搞了四五年的时间了,一直觉得AutoLayout布局方式比较影响性能,所以一直使用着最原始的Frame布局方式,但是随着机器性能的不断提高,我觉得AutoLayout这种布局方式已经可以基本忽略对性能方面的影响,而且在复杂布局方面AutoLayout有着Frame布局没有的优势,简单粗暴。这两天,我也是刚刚开始使用 Masonry ,说真的,真香。这里需要简述一下Frame布局方式和Masonry布局方式各有什么优缺点。我觉得这种谁强谁弱的问题要去辩证的看待,Frame布局方式在.原创 2021-01-24 03:14:12 · 2782 阅读 · 0 评论 -
任意组合判断还在用Switch?位运算符了解一下~
情景再现很多时候,当我们写程序都会有这样的情况,就是代码多选操作.例如下面的操作.比如有四个视图View(分别为A,B,C,D);当点击按钮a的时候,视图A,B背景色发生改变;当点击按钮b的时候,视图A,B,D背景色发生改变;当点击按钮c的时候,视图B,C,D背景色发生改变;后续开发中可能有很多按钮和不同的组合形式.这时候你会怎么办?第一种方案: 所有的按钮就响应一个方法,里面使用if else等模块来区分不同的按钮事件.思考问题: 后期如果增加一种按钮.你就需要增加一个if ..原创 2021-01-22 10:58:49 · 310 阅读 · 0 评论 -
SDUserDefaults:存储用户信息太痛苦?用这个就够了~
前言先讲一下为什么要去封装这个单例类.一开始我是怎么进行数据的存储的?写一个单例然后添加属性,修改属性的Set方法,为了防止手写失误,还要定义宏常量.在删除的时候,不但要把属性置为nil,还要把NSUserDefaults的值置空,相当繁琐复杂,每增加一个属性就要增加最少十行代码.非常不利于管理.在没有封装SDUserDefaults,多少在深夜中惊醒,生怕因为自己的疏忽,导致一些用户数据存储不上,可真是往事不堪回首呐,所以利用自己的一个空闲时间,封装一个SDUserDefaults存储单例,省去..原创 2021-01-22 10:50:33 · 498 阅读 · 1 评论 -
浅谈开发中提升工作效率的姿势
简介回想起来,从毕业到现在在iOS这个行业也努(hua)力(shui)了好几年,每每看到同事加班到深夜,于心不忍,故写这篇博客,总结自己这几年写代码的感悟,希望能帮助到那些加班到深夜的程序猿们.这篇博客主要有两个主题,一是代码规范,而是提升效率.虽然两者看似风牛马不相及,但其中的联系可是大大的存在,当你注重了代码规范,那么你的代码质量对应的提升,反正,最终你加班的次数减少就对了~文章也是随意写的,没有什么顺序,也就想到哪写到哪,各位大佬就当做饭后茶资来看吧~#### 正确的理解什么叫做写代码,..原创 2021-01-22 10:49:43 · 1641 阅读 · 0 评论 -
OC 中 覆盖父类属性会有Auto property synthesis will not synthesize property ‘xxx‘的警告
情景还原今天无意间弄了一个警告. 警告就会存在着一定的隐藏风险,所以就一定要解决这种异常风险,接下来我们看一下当时的情景代码.我首先写了一个名为BaseObject的基类 ,基类中具有一个遵循BaseObjectDelegate协议的代理属性对象delegate,如下所示#import <Foundation/Foundation.h>@protocol BaseObjectDelegate<NSObject>- (void)baseObjectDeleagate..原创 2021-01-22 10:45:36 · 931 阅读 · 0 评论 -
Cocos2d-x:飞机大战游戏源码分享
自己从学Cocos2d-x到撸代码用了一天时间写了这个不太成熟的飞机大战,只实现了基本的功能.用Xcode可直接运行到手机上.分享出来,无聊可玩一下.源码传送门游戏截图原创 2021-01-21 11:17:49 · 582 阅读 · 2 评论 -
MJRrefresh:关于mj_reloadData死循环崩溃分析
问题描述及分析废话不多说.直接上传截图了.在iOS11.0之前,MJRrefresh直接崩溃在mj_reloadData的死循环中.那么问题出现在什么位置呢?其实就是 UITableView的estimatedRowHeight属性和- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath方法,我们知道这两个方法是估算高度的功能.假设你对其进行了设置,原创 2021-01-21 11:14:22 · 342 阅读 · 0 评论 -
iOS 还记得如何修改某个类的输出形式吗?
如何修改一个类在NSLog中的输出形式?我们只需要重写- (NSString *)description即可(两三年没用这个了).例如 如果我们直接NSLog一个数组,假设数组中有中文,那么打印出来的日志就是经过UTF-8编码过的字符串.我们想看中文怎么办?只需要重写当前数组的- (NSString *)description即可.具体可以下方代码.- (NSString *)description{ for (NSString * item in self) { NS原创 2021-01-21 11:04:24 · 85 阅读 · 0 评论 -
SDDrawView:画板组件,这里的箭头很有特点!
SDDrawView简介SDDrawView 是一款基于贝塞尔曲线的画板组件,目前样式包含线条、矩形、圆形、箭头等样式.具有调整画板颜色,线条宽度,线条颜色等基本功能.后期准备接入图片涂改,橡皮擦功能,添加文字等功能.至于为什么要做SDDrawView这样的一个三方画板组件,其实SDDrawView大部分功能和现在网上的画板组件都是类似的,是一个不折不扣的造轮子组件.其实,在网上找了很多的画板组件三方中箭头样式令人不是太满意显得非常的生硬,大部分是一个矩形加一个三角形组成的多边形箭头.SDDrawV..原创 2021-01-21 10:59:07 · 256 阅读 · 0 评论 -
iOS调试WebView,简单到无门槛
问题来源近来这段时间一直在写内嵌在App中的Html,虽然在HBuilder中可以轻易的使用各种浏览器轻易调试Html,但是在Xcode中想调试Html却并不容易.Xcode的图形调试界面只能调试原生的UI.WKWebView和UIWebView只能显示黑屏.如下图所示.使用Safari浏览器调试WebView使用Safari浏览器调试WebView比较简单无需过多的程序配置,只需点击几个开关按钮即可.首先打开模拟器或者真机设置中"Safari浏览器"→"高级"→"Web检查器"的开关 ..原创 2021-01-21 10:57:57 · 1613 阅读 · 0 评论 -
浅谈WKWebView使用、JS的交互
前言WKWebView是iOS8 出来的浏览器控件,用来取代UIWebView.对于WKWebView与UIWebView的对比特点,这里就不过多的叙述,都算是老生常谈的问题了,网上的说明也很多.近来在做Web端,需要植入移动端,并且做JS交互工作.以前写过的JavaScript:浅谈iOS与H5的交互-JavaScriptCore框架是用于UIWebView.在WKWebView并不适用了,自己做的过程中遇到一些坑,在这里总结一下,做一下记录.WKWebView加载本地 html文件现在的..原创 2021-01-21 10:56:02 · 1217 阅读 · 0 评论 -
iOS视频横竖屏正确打开形式:调整动画执行出错问题
问题回放如果我们在一个iOS项目中使用到了视频播放器就难免会遇到强制横竖屏的问题.这个老生常谈的问题我们只需要监听设备的方向改变的通知即可,一般情况是不会出现什么的问题的.但是事实真的是这样吗?网上在这方面的资料也是杂乱不堪,大部分只是说说如何进行强制横竖屏,没有进一步说明动画操作,虽然大部分的情况是没有任何问题的,可是当用户快速的从左横屏→竖屏→右横屏的时候就会出现PlayView的尺寸显示不正确的问题了.原因是当左横屏→竖屏的动画还未完成时(动画过程需要0.3s),设备已经完成了从竖屏到右竖屏的..原创 2021-01-21 10:54:18 · 740 阅读 · 1 评论 -
Xcode9:“新建类的时候,总是打开其他文件夹”解决方案
解决方式很简单,如下所示,屡试不爽~~项目文件夹最下面的Filter搜索框中随便输入内容 (输入的内容不要删除)关闭该项目重新打开删除Filter搜索框中的内容来源于Xcode 9 总是自动展开固定文件夹的提问帖子...原创 2021-01-21 10:53:33 · 143 阅读 · 0 评论 -
强迫症自述:做一个0警告的项目
前言历经两个月,我终于完成了第一个C端项目全民星跑,整个工程总共8万行代码(包含注释行).作为强迫症的我把这个项目整的一个警告都没有,有人问我是不是因为我做了什么屏蔽工作,一键屏蔽什么的,其实这根本不存在的,其实我在开始架构整个工程的时候,就开始注意警告的个数了,加上大部分的控件三方都是自己写的,所以只要出现警告也是容易解决的,然后到项目的最后上线的时候,工程已经没有任何警告了.有人会问,那么工程没有警告到底有什么好处呢?我知道的只有一个好处,那就是在项目编译的时候是非常的快,因为编译警告也是需要..原创 2021-01-20 10:33:26 · 225 阅读 · 0 评论 -
iOS面试题收集整理(基础篇)
前言前几个月一直在面试,收集一些网上的面试题,整理抄写,做面试准备,分享给大家.希望大家能够面试成功!######分别写出MRC环境下在assign、retain、copy下属性name对应的setter方法的内部实现.***```//assign环境下-(void)setName:(NSString *)name{_name = name;}//retain环境下-(void)setName:(NSString *)name{if (_name != name) { ..原创 2021-01-20 10:32:05 · 227 阅读 · 1 评论 -
Xcode查看一个工程的总代码量
我们有时候想要知道我们的项目中到底写了多少行代码,这时候我们应该怎么办呢?我们只需要通过终端的几行指令即可.第一步、我们需要打开终端先 cd到我们的工程目录下.第二步、然后我们直接运行下面指令即可.find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l这样,终端就显示出我们的代码量,不过这里需要注意的是,注释也算在其中....原创 2021-01-20 10:31:21 · 474 阅读 · 0 评论 -
iOS开发之内存泄漏检测工具-Leaks
引言我们在实际开发过程中,经常会不小心造成循环引用问题,从而造成内存泄漏问题,那么我们该如何检测我们工程那个位置存在内存泄漏问题呢?这就需要用到Xcode自带的内存泄漏检测工具-Leaks.内存泄漏检测演示下面我们就直接进入主题,首先,我们需要先创建一个内存泄漏问题,我们创建两个数组,然后让他们两个相互持有,这样就会出现内存泄漏问题了,代码如下所示.整体的代码是在ViewController中的viewDidLoad这个方法实现的.- (void)viewDidLoad { [s..原创 2021-01-19 17:24:58 · 2484 阅读 · 1 评论 -
SDLaunch:一个杂七杂八,却功能完整的广告引导页
前言在App中的广告页面比较常见,新手导引更是不用说,基本上每一个应用都必备一个新手导引.虽然现在封装的三方比较多,但是骚栋还是想自己造造轮子,SDLaunch是一个具有多种页面类型的引导页.其中包括,广告页面类型、 **新手导引类型 ** 、 GIF背景页面类型、滚动图背景页面类型四种形式,基本上能满足所有的引导页需求.下面我们就看一下SDLunch的使用规范.SDLaunch使用说明SDLaunch三方的主体是SDLaunchViewController,SDLaunchViewCont..原创 2021-01-19 16:52:35 · 221 阅读 · 0 评论 -
JavaScript:浅谈iOS与H5的交互-JavaScriptCore框架
前言小的作为一个iOS程序猿,可能研究JavaScript以及H5相关的知识并不是为了真正的要去转行做这一方面,其实更多的为了要研究OC中的JavaScriptCore框架,JavaScriptCore框架主要是用来实现iOS与H5的交互.当然了,最早我曾经写过iOS浅谈webView的JS一种用法.(去掉web显示页的广告),这种算得上最简单的iOS与H5的交互了.现在混合编程越来越多,H5的相对讲多,所以研究JavaScriptCore框架是相当有必要的.好了不扯这些没用的了,来搞今天的主题—J..原创 2021-01-19 16:45:27 · 594 阅读 · 0 评论 -
nil:你到底是让我有多么蓝瘦香菇?
前言其实才短短工作了几个月的时间,就有不少人问我关于nil的处理问题,因为问的人很多,为了方便后来之人,(PS:骚栋你不要把自己说得那么高尚,你不就是为了图省事吗?以后有人问你这个问题,你好直接好甩博客给人家?you see see you !)咳咳,好了下面我就要说说我对nil的处理几种方式.nil 出现原因其实 nil大部分是出现在网络请求这一部分,出现nil的情况主要是有两种,一种是没有网络的情况下,仍然向服务器请求数据,这样请求下来的整体数据就为nil,另外一种就是由于后台人员的不小心.原创 2021-01-18 11:35:57 · 838 阅读 · 0 评论 -
SDTextField:一个可以诱导输入的输入框
前言因为前两天老大让翻找以前的工程,无意间发现这个了,就想搞一搞.以前我做诱导输入的时候一般是跳转控制器,在另外的一个控制器中searchBar和tableView配合实现诱导输入功能,然后通过代理或者通知中心进行传值.其实这种还是很常见的,因为页面的话也比较美观,相比于SDTextField.制作SDTextField的主要是老大要求,我也没办法,如果有需要的童鞋请拿走.具体的效果如下所示.SDTextField的快速集成SDTextField使用起来也是比较简单.我们只需要简简单单的两三步.原创 2021-01-18 11:32:19 · 94 阅读 · 0 评论 -
华山论剑之App打开设置页面和其他应用程序
前言这两天开始做新的项目了,在项目出现了打开系统的设置中的WiFi页面和其他应用的这两个需求.然后度娘了一下,整理整理发出来.方便以后的工作使用.App打开设置页面在iOS5.1之前,我们如果需要打开系统设置页面的某个页面,如打开WiFi设置页面,我们只需要使用如下代码即可. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];但是在iOS5.1之后,如果直接这么.原创 2021-01-18 11:18:48 · 346 阅读 · 0 评论 -
SDSilderView:一款圆形的音量调节旋钮
造轮子的初衷前两天在工作当中遇到需要使用UISilder,但是需要类似于一个旋钮形式,当时我就懵逼了,从网上找的就各种爆红,要不就是几年前的三方,时代都在进步,旋钮形式的silder确实也要更新一下了.借着国庆节这几天没事干(主要是单身狗的原因????),所以哪也不去,在家把这个轮子制作一下,方便在工作中使用.SDSilderView整体的展示效果如下.SDSilderView快速创建以及值的变化SDSilderView创建非常的简单,我们只需要调用如下方法就可以快速创建SDSilderVie原创 2021-01-18 09:47:15 · 197 阅读 · 0 评论 -
SDLockView:基于贝塞尔曲线的手势解锁
####从造轮子到SDLockView手势解锁这个三方在很早之前就存在了,只是以前是没有用到过,这两天中秋在家闲着没事的时候就写了一个关于手势解锁的三方SDLockView.其中SDLockView主要的功能有三种,分别是设置手势密码,修改手势密码,验证手势密码.接下来,我们就一睹为快SDLockView的效果图.####SDLockView的快速生成有很多时候,我们需要快速生成SDLockView页面,这时候,对其,我们只需要简简单单的三步,就可以快速集成SDLockView.首先,我们..原创 2021-01-18 09:46:13 · 141 阅读 · 0 评论 -
SDauthCode:一个基于Core Graphics框架的本地动态验证码
SDauthCode简介SDauthCode是一款基于Core Graphics框架的本地动态验证码,SDauthCode使用起来简单易懂,如果我们不需要特别的定制,我们只需要一行代码就可以快速生成一个本地验证码View,同时,允许用户对SDauthCode的样式进行调整.比如取材库,验证码的位数,干扰线的条数,刷新验证码等等,通过不同的定制可以应对不同的实际情况.那么我们接下来看一下SDauthCode的实际效果.一行代码快速生成验证码首先,我们把SDauthCode.h和SDauthC..原创 2021-01-17 09:06:34 · 145 阅读 · 0 评论 -
华山论剑之浅谈iOS的宏定义以及内联函数的使用
你带着一个故事去听一首歌感觉会不一样,你带着一个故事去找一首歌心情会不一样。宏定义的简介宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译.1. 不带参数的宏定义:格式: #define 标识符 字符串说明:(1)宏名一般用大写(2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义(3)预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。(4)宏定义末尾不加分号;.原创 2021-01-15 10:21:34 · 418 阅读 · 0 评论 -
华山论剑之iOS错误日志
日志来源前两个月一直在做项目,在项目遇到过不少以前没有遇到过的错误日志,这里就整理出来,分享一下那些年我掉进去的坑.全部日志this class is not key value coding-compliant for the key XXX错误" this class is not key value coding-compliant for the key digitPressed.’ "的错误,经过一番搜索和排查发现是自己在设置IBAction和IBOutlet时有多余的连线,按.原创 2021-01-15 10:21:20 · 578 阅读 · 0 评论 -
iOS之浅谈自定义字体的坑
起因不管是在手机游戏当中还是在手机的应用程序当中,经常会看到一些比较特立独行的字体,即使你把整个iOS系统库翻个底朝天,你也是找不到的,那么对于这种字体是如何实现与使用的呢?经过不管如何,我们都首先应该找到自定义字体的素材.这里我提供一个网站.点击这里.我们去这里选择"Pixel, Bitmap"这个分类进行下载.我们就选择第一个字体下载.(自行选择,客官看好哪个选哪个~????)解压后的图片如下.字体的文件的后缀为.ttf那么第一个坑就出现了(解决时间:6小时????),对于把字原创 2021-01-15 10:20:28 · 206 阅读 · 0 评论 -
华山论剑闲谈iOS中闪光灯的使用
前言近来项目已经完结,手上没有太多的任务,就想看一点以前没看过的东西,其实闪光灯的使用并不是太常见,而且调用比较简单,但是也是iOS学习过程中不可或缺的一部分.我总结闪光灯总共有三个功能,一是调用相机的时候充当闪光灯的功能;而是手电筒的功能;三是提醒用户的功能.今天就调用系统的闪光灯做一个简单的手电筒.虽然系统已经自带了手电筒,但我们只是通过手电筒的功能实现,看看是如何调用的闪光灯.iOS手电筒功能实现首先,我们需要导入AVFoundation…framework框架.如下图所示.为了..原创 2021-01-15 10:17:03 · 219 阅读 · 0 评论 -
华山论剑之闲谈Application Loader使用
Application Loader简介Application Loader是一款开发者上传应用程序到App Store的开发类工具,上传速度要比使用Xcode快很多,推荐使用.再看使用Application Loader之前,我们需要把我们的应用程序导出为 ***.ipa***文件.上线流程我现在下面的一篇简书博客中.—>华山论剑之iOS App 应用的上线 和 版本升级应用程序导出ipa文件上一篇的文章中第五步的Archive,如果按照正常程序走的话,是要使用Xcode上传我们的..原创 2021-01-15 10:16:48 · 2089 阅读 · 0 评论 -
华山论剑之浅谈iOS文字印章的实现(NSMutableAttributedString和NSTextAttachment实现图文混编)
夫人之相与,俯仰一世,或取诸怀抱,悟言一室之内;或因寄所托,放浪形骸之外。虽趣舍万殊,静躁不同,当其欣于所遇,暂得于己,快然自足,曾不知老之将至。及其所之既倦,情随事迁,感慨系之矣。前言上面的一张图想必大家都不会陌生,没错,这就是王羲之的<<兰亭集序>>,你会问到,你一个程序猿搞什么<<兰亭集序>>干嘛,准备学习书法,陶冶情操.你还别说,你真说对了,我就是想陶冶情操,怀念古人遗风.????????????好了,言归正传,今天的主题就是如何在App原创 2021-01-15 10:16:14 · 661 阅读 · 1 评论 -
聊聊iOS开发中耳机的那点事(监听耳机拔插、耳机线控)
如果说一个项目出现的最重大的事故,那无疑就是开发人员使用了不可控的元素.前言iOS开发当中有关于视音频播放的开发不在少数,用户时常会使用到一种输出设备,那就是"耳机",这一篇博客写的就是关于耳机的一些开发相关的技术点.检测耳机是否插入看到上面的标题的时候一定要注意,这里说的是"检测耳机是否插入",这里只是一次性的检测,不是实时监控耳机的拔插,但是有一些时候,下面的这个方法已经足够满足我们的开发需求了.首先,我们需要导入AVFoundation.framework这个框架如下图.然..原创 2021-01-14 10:55:07 · 1265 阅读 · 3 评论 -
华山论剑之浅谈iOS的Touch ID验证
#### 序言***在iOS 8系统开发的时候,苹果官方就开始开放了Touch ID的验证接口功能,这样开发人员就可以在应用程序中判断输入的Touch ID 是否是持有者的Touch ID.当然了,只能验证成功与否,却不能得到具体的信息.####准备工作首先我们需要在系统设置的"Touch ID 与密码"这个选项中保存我们的指纹信息.2.在Xcode中,我们需要导入对应的库.库名和示意图如下.LocalAuthentication.frameworkTouch ID验证实现..原创 2021-01-14 10:54:43 · 157 阅读 · 0 评论