iOS
文章平均质量分 67
yanglei3kyou
iOS开发
展开
-
iOS 认识之 应用内评分
阐述记得很久之前,应用刷榜还是挺火的,高榜意味着高流量,最近苹果对这块抓的有点紧了,大家只能找招来满足这部分需求,应用内评分则是很好一招。调研使用场景:无需离开APP即可执行打分和评论操作。限制: 1标准化提示最多在 365 天内使用三次 2 iOS 10.3+开发使用 StoreKit 中 SKStoreReviewControlleriOS10.3之前的则需要根据产品方案设定注意:1 开发模式下,调用此方法,可以...原创 2020-08-31 19:46:26 · 653 阅读 · 0 评论 -
WARNING 处理之 <PBXResourcesBuildPhase UUID=...> attempted to initialise an object with an unknown UUID
闲言从北京到上海着实适应了不少时间,“放纵”了半年,也应该重拾自己的笔头了。勿意他人,心安即可。简单记录点东西吧...现象团队合入代码并执行pod install 的时候,如果之前有成员合入不当,会出现 <PBXResourcesBuildPhase UUID=...> attemp … WARNING, 这着实让人难受。解决产生这个原因其实是Pod资源合入紊乱, 即成员B本地安装Pod B的时候(无感知成员A更新),另外成员A引入了 Pod A并提到了仓库中,此..原创 2020-07-31 22:03:13 · 660 阅读 · 0 评论 -
iOS 认识之 Git拔高篇
简述认识-身份证(用户信息)git config user.name --globalgit config user.email --global帮助系统跟踪是谁做的修改和提交 配置用户名和用户邮箱 一般作用是配置后续对仓库提交时带上的备注信息配置文件的作用域1 local 针对某一个仓库, 若是Git指令带修饰符 --local 则必须,则当前环...原创 2019-12-31 22:01:24 · 95 阅读 · 0 评论 -
iOS 记录之 Swift协议可选方法(多环境)
阐述新公司,新层次,接触到新的东西。进入喜马后,由于主站APP与当前APP技术基础不太一致,故代码从设计时就需要考虑同时支持两种环境(Objective-C与Swift)。之前呢,只是单纯为指定环境开发,如在Swift环境下以Swift为主设计并封装代码。一般来说也就是说单纯使用 Swift 的 Protocol 进行相互的约定。现在则需要考虑一下,如何反相支持Objective-C了。...原创 2019-11-30 16:07:25 · 451 阅读 · 0 评论 -
iOS 认识之 defer关键词 (梗概)
阐述一句话概括: defer包裹的代码会在函数return之前执行。(无论函数是从哪个分支return, 或 throw, 或自然执行到最后一行)认知1 使用场景1-1 do-catch 结构a defer在do-catch结构中的do代码块中,defer会在do代码块执行完就执行defer代码b defer在do-catch结构中的do代码块外,defer会在函...原创 2019-10-31 22:08:12 · 279 阅读 · 0 评论 -
iOS 探讨之 百度推送 "证书无效"
阐述最近有许多证书将要过期,趁着有时间赶紧将公司的证书全部梳理一遍。在对百度推送进行证书更新时,出现了“证书无效”的错误(去年更新的时候也没出现问题),折腾好几天才解决掉。记录一下,并辟谣许多错误的说法(不让大家走弯路)。探讨首先感谢一下 “控记我记几”,在他的博文中所提出的解决方法很有效果。- openssl 版本问题博主指出百度推送不接受 openssl 版本高于0.9.8 所生成的pem, ...原创 2017-12-19 10:57:26 · 2102 阅读 · 3 评论 -
iOS 探讨之 cellForRow/cellForItemAtIndexPath 函数不执行
阐述日常开发中总能遇见一些奇葩的状况,事后发现都是因一些“小忘记”而产生,不过有一些是挺奇葩的。估计大家刚看标题 "cellForRow/cellForItemAtIndexPath函数不执行" 第一反应就是数据源(dataSource)未设置或者是数据源中的数据总量为零。大家的反应都是合理的,但我今天想提出的情景是当视图尺寸(Size)宽(width)或高(height)为零的时候表原创 2018-01-30 15:33:56 · 12021 阅读 · 0 评论 -
iOS 探讨之 玩转设备权限
阐述从前几年的棱镜门到最近的Apple与FBI关于解锁iPhone的争论,人们开始重视个人隐私地保护。Apple在用户保护隐私这方面做了很多工作,因此受到了广大用户的好评,但变相得增加对iOS开发者的要求(熟练地掌握设备权限)。下面我们开始探讨一下iOS设备中某些权限。(注:iPad、iTouch不含有某些功能)总括本文探讨方面包括以下权限:- 联网权限- 相册权限原创 2016-08-30 14:04:44 · 1657 阅读 · 0 评论 -
iOS 探讨之 ObjC类初始化
阐述近期发现iOS黑魔法中许多神奇的操作都是在类初始化的时候,之前玩的方式都是在对象实例化的时候,感觉发现了一片新大陆玩耍一下。探讨NSObject 作为大多数类的基类(NSProxy特殊)我们首先去IDE中寻求与类初始化有关的信息。在NSObject 的介绍信息中,关于类初始化这方面官方提到了两个方法: + initialize、 + load 。也就是说我们可以在这两个方法中搞一些有"意思"的...原创 2018-02-28 09:23:08 · 664 阅读 · 0 评论 -
iOS 探讨之 "最后的挽留" - 消息转发
阐述在被虐中向前一点一点前进着…这是最近的概况。有个问题一直没能静下心来研究它,最近被它狠狠地往心口里刺了几下,故狠下心来解析它 --- 消息转发(最后的挽留)。原创 2018-03-31 19:37:16 · 186 阅读 · 0 评论 -
iOS 记录之 Git介绍篇
阐述正如每只猴子都有一根尾巴,每个程序猿都有一个GitHub账号。但是很多人只是有之而不是尽之,Git、GitHub、SVN这些概念都没有理清,故理之录之。(此篇为介绍篇,指令使用部分没有详细介绍)原创 2017-11-30 10:14:32 · 334 阅读 · 0 评论 -
iOS 记录之 CocoaPods Pods的制作(新版方式)
阐述随着iOS的不断发展,越来越多的开发者开始使用CocoaPods来管理他们的第三方。使用Pods时,我在考虑Pods能不能给自己更大的帮助,改变现在的开发风格。原创 2016-04-14 16:07:05 · 2257 阅读 · 0 评论 -
iOS 封装之 直播弹幕
在某网站看直播的时候,突然奇想,想自己封装一下弹幕效果,以后做App的时候可以直接用总结了一下我的需求1. 界面可显示其他来源的弹幕2. 要求自己可以发送弹幕3. 自己发送的弹幕与他人发送的不一致(实现效果与ZQ保持一致)4. 支持横竖屏切换5. 承载弹幕的Label要求变长原创 2015-08-31 14:09:29 · 2482 阅读 · 0 评论 -
iOS 记录之 获取设备网络信息
简述在特定App的开发中,有的时候需要得到当前设备的Wifi信息,如Wifi 名, Mac地址等。现在深入研究苹果相关原生API。原创 2015-12-31 09:10:57 · 3178 阅读 · 0 评论 -
iOS 记录之 Objective-C与JS交互
网络上现在存在很多关于OC与JS交互的资料,最近做项目中需要,这边整理下来,以方便自己和大家查阅。原创 2016-01-27 15:34:10 · 1070 阅读 · 0 评论 -
iOS 记录之 IPv6环境搭建
阐述好记性不如烂笔头~ 记录一下IPv6虚拟测试环境搭建过程。原创 2016-12-26 13:55:38 · 343 阅读 · 0 评论 -
iPhone 记录之 点与像素
简述为了避免 Android 设备的适配大坑,苹果提供一套适配自家产品不同尺寸的方案,让我们来探究一下像素与点的关系吧。探究从初代iPhone 到 iPhone 3GS,iPhone系列坚守 320 x 480 像素。开发人员采用绝对定位及像素模式进行处理。但是 iPhone 4之后就发生了改变,iPhone 4 采用Retina显示屏。即当前物理尺寸不变,但像素成倍增加,变成了...原创 2015-11-27 15:02:45 · 1760 阅读 · 0 评论 -
iOS 记录之 寻找dSYMs
阐述随着Xcode版本的不断迭代,一些常规操作变得难道找寻,这次我们来确认 Xcode 9.3下的 dSYM找寻。记录总所周知dSYM是系统编译后的函数信息符号表,每次Archive都对应着不同的文件,而这些文件是我们在处理产品线上崩溃时所使用到的。也就是说dSYM的相关配置是存在于Xcode开发环境中的,那么我们就需要了解它这些的“控制开关”。相关配置Xcode 的 Build Settings...原创 2018-04-30 10:20:36 · 2185 阅读 · 0 评论 -
iOS 探讨之 代码混淆
阐述没有绝对安全的系统,也没有黑客破不掉的系统,所需要的只是时间而已… But,当时间成本大于收益成本,聪明人是不会进行尝试。为了所谓的“相对安全”,研究代码混淆也是必要的。探讨Step 1创建 confuse.sh、 func.list终端(Terminal)可以键入touch confuse.shtouch func.shStep 2将 confuse.sh 、func.list 添加到工程中...原创 2018-06-29 09:43:14 · 1166 阅读 · 0 评论 -
iOS 探讨之 设置文件iCloud不同步
阐述从业务层次来说,每个人都希望给用户提供更快更好的产品。由此,研发过程中会涉及到缓存这一技术。对于客户端研发来说,缓存写入沙盒后需要考虑的不简单是CRUD,还应包括缓存的安全性,这一点在用户信息上尤为突出。缓存安全性一方面可以从数据加密角度处理,另一方面可以从限制数据获取渠道角度处理。探讨由于iOS系统自带iCloud同步功能,沙盒中的文件默认又是开启iCloud同步能力的,所以从限...原创 2019-08-30 11:40:24 · 1120 阅读 · 0 评论 -
iOS 记录之 CGContext 透明背景
阐述大部分业务情形下UI设计师会指定控件的背景颜色,但为了更好的封装,开发的时候往往将背景调整为透明以便适配更多的场景。一般情况使用UIView简单叠加封装方式对调整颜色并不具有多大的难度,但在使用 CGContext 自定义控件时,调整背景还是有些“小坑”,这里记录一下相关的注意事项。记录1 背景通常我们使用 CGContext 自定义控件时,会使用 .setFillColor ...原创 2019-07-28 11:01:43 · 1593 阅读 · 0 评论 -
iOS 记录之 获取网络类型 (2G、3G、4G、WIFI)
阐述One Team,One Style。 新产品团队着实让我们费了老大劲,有些东西看似简单,但真正实现下来还是需要下一番功夫。此版本搞了一个阅读状态器,里面包含电池信息、网络类型等设备相关信息。网络类型蜂窝相关的如果不细拆分 (2G、3G、4G) 则感觉并不那么费劲,毕竟官方已经给出了相关Demo。不过,在产品团队要求下还是做精做细,故记录一下整个功能探坑历程。记录0 调研Sch...原创 2019-06-29 18:12:05 · 1433 阅读 · 0 评论 -
iOS 探讨之 UIButton State 神坑
简述对于一些平常不太关注的事情来说,我们认为其的发生是理所当然,当问题蹦出后,“我靠( ‵o′)凸,按道理不应该这样啊 ~ ” 随之而出。这次,我就被 UIButton 的 State 狠狠调戏了一番。探讨初次认知 UIButton 的时候我就会被其的各种状态折磨得头昏脑涨,后来随着见面次数的增加,慢慢了解到其的状态实际上是位的枚举集合。那么,首先我们来瞜一眼苹果官方D...原创 2019-04-30 15:25:15 · 1308 阅读 · 0 评论 -
iOS 探讨之 dispatch_source 定时器
阐述前面已经介绍 CADisplayLink、mach_absolute_time 都可以在定时这块进行封装,当然NSTimer也是可以的,这次我就梳理一下dispatch_source 版本的定时。NSTimer 受 RunLoop 的影响, 由于 RunLoop 需要处理很多任务,所以其精度不高。 CADisplayLink精度低的原因类似,具体原因放在最后解释。如果我们对定时器...原创 2019-03-26 20:23:38 · 2169 阅读 · 0 评论 -
iOS 记录之 isExclusiveTouch
阐述梳理现公司代码时发现 isExclusiveTouch 出现很多次,但是对其不是很熟悉,学习并记录一下。 记录1 官方介绍A Boolean value that indicates whether the receiver handles touch events exclusively.Setting this property to true causes ...原创 2019-02-25 19:42:45 · 1999 阅读 · 0 评论 -
iOS 探讨之 mach_absolute_time
阐述去年在与大厂的交手中,碰到了如何测量函数耗时这类的问题。最近正好有点空余时间供我研究并整理它们,希望这次整理出的东西能给大家带来一点帮助。 探讨测量函数耗时所用的方法有很多种,这次我们先来介绍 mach_absolute_time() 相关。 什么是Mach?Mach是一个用于支持操作系统研究的操作系统内核,后来被开发成UNIX中BSD的替代内核。Mach名称野...原创 2019-01-28 16:29:14 · 2783 阅读 · 0 评论 -
iOS 探讨之 初探SiriKit
阐述最近研究了一下SiriKit,感觉有点意思,记录并与大家探讨一下。工欲善其事必先利其器,在研究SiriKit模块时苹果官方介绍通篇充斥着Intent、Resolve、Confirm等词汇,让英语未过六级的我感到无比吃力。感觉词汇还是有必要给大家介绍一下,顺便统一单词说法以便大家能够看懂后续内容。 词汇确认: (箭头后为文章所用含义)Intent 意...原创 2018-12-17 11:13:46 · 2524 阅读 · 0 评论 -
iOS 记录之 通过 Apple Configurator 截取IPA包
阐述很早之前我们可以通过 iTunes Store 来直接获取程序IPA包,但最近 iTunes Store 不再提供获取程序IPA包的能力了。一番努力寻找后,发现可以通过 Apple Configurator 软件来间接获取程序IPA包,下面是对应的步骤。 记录原理利用 Apple Configurator 具有更新手机软件的功能,在程序下载完毕并准备更新的时候进行程序I...原创 2018-11-26 16:36:09 · 1163 阅读 · 0 评论 -
iOS 探讨之 CADisplayLink
概述“金九银十”,九月底我选择离开待了四年的公司。在与一些大厂的“交手”中,发现自己的确忽略了很多点。从这个月开始,逐步的把那些点一一补充完整。Let’s get it。 探讨1 Overview官方话: 一个定时对象,该对象同步当前应用的渲染刷新频率。(人话就是设备屏幕每刷新一次,该对象绑定的方法就会调用一次) 2 上下文与渲染相关的类 CADis...原创 2018-10-29 14:24:24 · 760 阅读 · 0 评论 -
iOS 填坑之 WKWebView字体自适应
阐述WKWebView作为“新来”的则必然代表它有些“特殊”,这次我们先不讨论它俩的区别,我们来适配一下WKWebView所展示内容。最近搞了一个产品,因合同条款后期需要动态修改,故用了一个链接来实现。但问题也就随之而来,加载出来的文字大小与在浏览器选择手机模式时的不一致。故网上寻求解决方法并填之。 记录群众推荐的方法1 让前端小哥添加在前端小哥忙碌的时候,你是...原创 2018-08-31 09:21:53 · 3690 阅读 · 0 评论 -
iOS 记录之 math.h
阐述研究绘图时才发现,math.h中的好多函数没有了解过,借着这个机会梳理一下。 记录1 宏定义#define INFINITY HUGE_VALF无穷 2 三角函数三角函数已经忘记差不多,基本知识复习一下 正弦函数 余弦函数 正切函数 反正弦函数 反余弦函数 反正切函数 ...原创 2018-07-31 12:04:50 · 495 阅读 · 0 评论 -
iOS 探讨之 NSPredicate构造 之 格式字符串
阐述提升产品的性能,一方面可以从界面构造上入手,另一方面可以在业务处理上优化。 业务优化中,数据的筛选是很大一部分,这个过程中遇见了”NSPredicate”,感觉这个东西还是很不错的,初步探讨一下,毕竟东西有点多。探讨NSPredicate 翻译过来,是谓词的意思。在百度中,对谓词描述如下: 谓词,用来描述或判定客体性质、特征或者客体之间关系的词项。谓词:在计算机语言的环境下,谓词是指条件表达式的求值返回真或假的过程。在Apple官方文档,对NSPredicate的描述如下:A de原创 2017-10-31 10:18:41 · 632 阅读 · 0 评论 -
iOS 探讨之 代理模式
评判一个iOSer能否独挡一面,首先的标准就是其需能叙述清楚代理模式及模式中谁是谁的代理问题。原创 2017-08-29 14:57:47 · 310 阅读 · 0 评论 -
iOS 静态库分析及创建
简述 为了满足既供用户使用又维持代码保密性的需求,这时我们就有必要创建 库文件。苹果在这个方面提出了静态库和动态库的概念。其中,由于苹果商店会拒绝含有私人创建的动态库的App, 故静态库相对来说较流行。 圈内比较大的第三方几乎都在提供静态库。 自问自答1. 静态库和动态库的形式 静态库 .a和.framework 动态库 .a和.framework...原创 2015-10-13 11:13:51 · 1004 阅读 · 0 评论 -
iOS CPU架构(ARM指令集)
简述ARM处理器,因其功耗低和尺寸小而闻名,几乎所有的手机处理器都基于ARM,苹果当然也不例外。armv6、armv7、armv7s、arm64都是ARM处理器的指令集,所有指令集原则上都是向下兼容的。如iPhone4s的CPU默认指令集为armv7指令集,但它可以同时也兼容armv6的指令集,只是在使用armv6的时候无法充分发挥其性能(无法发挥armv7指令集中得新特性)。iOS模拟器没有运行ARM指令集,编译运行的是x86指令集(或i386),所以只有在iOS设备上才会执行设备对应ARM指原创 2015-09-30 10:43:30 · 6459 阅读 · 0 评论 -
NSString 之 length 别让眼睛欺骗了你
比较 大写字母 小写字母 汉字 数字 半角符号 全角符号 在 NSString中的长度原创 2015-08-31 10:18:50 · 1511 阅读 · 0 评论 -
UIButton 点击热区的扩大
前言最近在做一个新项目,由于换了一个美工,自己也有些疏忽,致使一些按钮的图片大小不太合适,后期也没有时间让其去重做了,为了使界面和用户体验兼得,上网收集了一些扩大UIButton的点击热区的方法。现在已了解的方法有: - 自定义Button(透明Button遮罩) - 自定义Button(重写Button的内部方法)(推荐*)原创 2015-08-17 09:57:04 · 6247 阅读 · 0 评论 -
iOS App各种路径
iOS 程序沙盒目录下有四个重要路径:1. Documents2. Library3. tmp4. 程序.app (*程序.app与另三个路径的父路径不同)各个目录说明:1. Documents : 开发者应该将所有的应用程序数据文件存储到这个目录,这个目录用于存储用户数据或其它应该定期备份的信息2. Library :这个目原创 2015-06-15 15:05:38 · 6559 阅读 · 0 评论 -
Xcode 6.0版本后 添加pch文件
问题场景:Xcode 6.0版本之前生成项目的时候会自动生成一个 项目名字-Prefix.pch 这样的文件,但Xcode6.0版本后不给自动生成了,需要我们自己创建并且在Build Settings中设置一下。Xcode 6 之前版本生成的项目:Xcode 6 之前版本pch文件内部代码://// Prefix header//// The conten原创 2015-05-21 14:14:24 · 801 阅读 · 0 评论 -
统计iOS项目的总代码行数方法
1. 进入终端2. 利用 cd 命令进入当前项目的目录3. 输入 find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" ")" -print | xargs wc -l 4. 回车列出每个文件的行数原创 2015-04-21 16:36:12 · 767 阅读 · 0 评论