IOS
文章平均质量分 76
YCM1101743158
明天的天更蓝,奔跑吧
展开
-
swift面向协议编程
一、委托模式 1、使用过程 协议最常见的用法莫过于进行代理传值,这就是委托模式。常用的应用场景有:controller中自定义了一个view,view中又添加了一个自定义view。在自定义的view中如果有些函数或者属性需要到controller中去调用,委托模式的做法就是规定一个协议,让controller去遵守一个协议并提供实现,那么在自定义view中就能使用协议中的方法。 ...转载 2018-07-28 11:51:40 · 473 阅读 · 0 评论 -
ios性能优化实践
本文将从原理出发,解释卡顿发生的原理,然后会讲解项目中行之有效的几个优化点,最后会展望一下接下来将要尝试的方向。下面进入正题。屏幕显示的原理基本原理屏幕显示原理我们知道,远古时代的CRT显示器的显示原理是用电子枪扫描荧光屏来发光。如上图所示,电子枪按照从左到右,然后从上到下的顺序扫描。当电子枪换到新的一行准备进转载 2018-01-31 23:02:00 · 487 阅读 · 0 评论 -
ios自动打包
iOS常见的几种打包方法:方式一: 使用xcodebuild命令步骤0. 准备工作:基础参数# 项目名称,打包后生成 .ipa 文件的名称projectName="JimuDudu"# 项目目录(一般情况下,shell 脚本就在项目路径下)workspacePath="/Users/ap转载 2018-01-31 19:15:10 · 387 阅读 · 0 评论 -
AFNetworking Post JSON数据
AFNetworking Post JSON数据,两种方法,都可以用下面分开介绍使用AFNetworking3.0后网络请求由原来的AFHTTPRequestOperationManager变为AFHTTPSessionManager。一般的Post请求变成了这样: NSMutableDictionary *params = [NSMutableDiction转载 2017-12-28 12:06:09 · 3342 阅读 · 1 评论 -
iOS 混编 模块化/组件化 解耦
1. 开篇本文的初衷,是为了给正在做混编或者模块化的同学们一个建议和参考。因为来饿厂以后做的项目是全公司唯一一个 Swift/OC 混编的 iOS 项目,所以一路上踩坑无数,现在把一些踩坑的过程和经验总结起来,供大家参考。相信在浏览本文后,一定会有所收获。我来的时候项目已经开始 Swift 改造了,慢慢的把项目 S转载 2018-01-10 22:41:44 · 1516 阅读 · 1 评论 -
PLA1.2被拒 Guideline5.2.1被拒 马甲包被拒
编者:这么多人还在为PLA1.2(Apple Developer Program License Agreement)/Guideline5.2.1(App Store Review Guidelines)烦恼(实在看不下去了~),特为大家奉上此篇,不用凭运气过的官方解决通道。注:编者在某次上架时,先被PLA1.2拒了,在和审核人员沟通的过程中,她又发了一个Guideline5.2.1作为拒绝的理原创 2017-12-04 23:57:53 · 1522 阅读 · 0 评论 -
详解三种排序
直接插入排序直接插入排序(Insertion Sort)可以说是排序里最简单的了。为简化问题,我们下面只讨论升序排序。代码如下:void InsertSort(int array[], int left, int right){ int temp; int j原创 2017-12-03 23:18:04 · 457 阅读 · 0 评论 -
代码可读性实践
具有较强可读性的代码,代码可读性不是看起来好看那么简单。代码追求可读性的目的是降低他人阅读你的代码的难度,能帮助你调试程序,所以你的代码要在以下三个层次上易读:1)文本清晰可读2)信息充分富集3)逻辑容易理解下面简单介绍强可读性代码的实践。1 - 注释和文档IDE(Integrated Development Environmnet,集成原创 2017-12-03 23:01:57 · 341 阅读 · 0 评论 -
iOS图片模糊
iOS常见的截图模糊问题解决办法主要原因:是在iOS7 的分辨率 会改为另外一种代替的方法iOS7之前是UIGraphicsBeginImageContextiOS7之后是UIGraphicsBeginImageContextWithOptions+(UIImage*)captureScreen:(UIView*)viewToCapture{ UIGraphi原创 2017-11-17 17:11:33 · 595 阅读 · 0 评论 -
Tableview偏移的误差,偏移20,偏移64
在使用Tableview时有时候会产生各种各样的小问题,下面说下Tableview偏移问题的产生和解决方法原因:1滚动视图不能作为父视图的第一子视图。 2scrollView的自动布局问题。这是因为在iOS7.0之后,系统会自动调整scrollView的layout 和 contentInsets 。从而使其自动地适应iOS7之后那种整原创 2017-11-07 14:54:50 · 6074 阅读 · 0 评论 -
IOS视频编辑,视频裁剪,视频拼接,音频处理,视频处理
前言用代码在简单视频编辑中,主要就是加美颜、水印(贴图)、视频截取、视频拼接、音视频的处理,在美颜中,使用GPUImage即可实现多种滤镜、磨皮美颜的功能,并且可以脸部识别实时美颜等功能,这个有很多成熟的处理方案,所以现在主要说后面的水印(贴图)、视频截取、视频拼接、音视频的处理,在文章结尾会给出一个完整的测试demo,该demo可以操作视频之后保存到系统相册,文章主要说明下注意的点。转载 2017-11-07 08:38:07 · 9194 阅读 · 0 评论 -
IOS视频编辑,视频美颜,视频添加水印
前言用代码在简单视频编辑中,主要就是加美颜、水印(贴图)、视频截取、视频拼接、音视频的处理,在美颜中,使用GPUImage即可实现多种滤镜、磨皮美颜的功能,并且可以脸部识别实时美颜等功能,这个有很多成熟的处理方案,所以现在主要说后面的水印(贴图)、视频截取、视频拼接、音视频的处理,在文章结尾会给出一个完整的测试demo,该demo可以操作视频之后保存到系统相册,文章主要说明下注意的点。转载 2017-11-07 08:27:20 · 3427 阅读 · 0 评论 -
iPhone X、iOS 11 、Xcode9,适配,布局,API
关于iPhone X、iOS 11 、Xcode9,我们应该知道这些1.iPhone X 上运行有黑色区域问题解决方案:使用LaunchScreen来当做入场页 或者 修改Assets中的LaunchImage,添加iPhoneX的Launch图1125*2436(竖屏),注意这边的图片像素必须按要求来2.navigationBar适配iOS11前导转载 2017-09-27 15:15:19 · 3470 阅读 · 0 评论 -
Xcode 9 代码折叠,全局折叠,快捷键
在Xcode菜单里选择Preference——Text Editing,你会发现里面有一个“code folding ribbon”,勾选它就能恢复代码折叠功能了。然后通过菜单Editor——Code Folding,你就可以使用你需要的折叠功能。相关快捷键:局部折叠(折叠一个函数) :Command+Option+Left/Ri原创 2017-09-26 15:16:51 · 31826 阅读 · 0 评论 -
视频 秒开,美颜,卡顿
视频问题需要注意的几个点:1秒开,2美颜,3卡顿,简单分析归纳一、怎么优化打开速度,达到传说中的 “秒开”?大家可能会看到,市面上某些手机直播 APP 的打开速度非常快,一点就开。而某些手机直播 APP,点击播放后要等好几秒以后才能播放。是什么原因导致如此的天壤之别呢?大部分播放器都是拿到一个完成的 GOP 后才能解码播放,基于 FFmp原创 2017-08-31 23:58:30 · 1485 阅读 · 0 评论 -
正则表达式汇总
日常开发文本处理过程中,简单的Ctro+H模式(一对一替换模式)已经不能满足需要了我们需要更为强大的文字处理工具,正则于是应运而生。很多小伙伴不怎么太懂正则。比如我们用到的最多的就是注册的时候我们看到的用户帐号验证,密码的验证、邮箱等等、看看用户所填写的是否合乎规范、但是一般很常用的网上都有大批的资源正则表达式存在的目的是提高复杂文本分析的效率的,比如说分析html、分析log、分析exp转载 2018-01-31 23:30:24 · 254 阅读 · 0 评论 -
APP网络优化
一般开发一个 APP,会直接调用系统提供的网络请求接口去服务端请求数据,再针对返回的数据进行一些处理,或者使用AFNetworking/OKHttp这样的网络库,管理好请求线程和队列,再自动做一些数据解析,就结束了。但对于一些大型 APP,还会想针对网络的一些问题进行进一步优化,包括:速度:网络请求的速度怎样能进一步提升?弱网:移动端网络环境随时变化,经常出现网络连接很不稳定可用性差的情况,怎样在...转载 2018-02-28 18:58:24 · 782 阅读 · 1 评论 -
iOS APP加固
没有绝对的安全,只能相对之前的更安全一点,下面介绍一下APP加固的常用手段一些实用手段 防止 tweak 依附 通常来说,我们要分析一个 app,最开始一般是砸壳, $ DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /path/to/XXX.app/XXX 然后将解密之后的二进制文件扔给类似 hopper 这样的反编译器...原创 2018-07-28 11:26:12 · 617 阅读 · 0 评论 -
UIWebView cookie 设置获取
1. NSHTTPCookieStorage和NSHttpCookieNSHTTPCookieStorage 实现了一个管理Cookie的单例对象(只有一个实例),每个Cookie都是NSHTTPCookie类的实例,做为一个规则,Cookie在所有应用 之间共享并在不同进程之间保持同步。Session Cookie(一个isSessionOnly方法返回YES的Cookie)只能在单一进程中...原创 2018-07-27 17:25:43 · 1099 阅读 · 0 评论 -
iOS图形处理
对于刚接触iOS图形相关框架的小白,有一些图形框架在字面上和功能上非常容易混淆。这里旨在总结一下各种框架,区分它们的概念和功能,以作日后进一步细分学习的指引。因而,本文并不会针对具体框架作详解,只作区分引导,读者可自行选择方向继续深造。为此,笔者总结了一张各种框架关系图,如下所示: iOS图形处理相关概念集合总的来说,iOS与图形图像处理相关的框架都在这里了: 界面图形...转载 2018-07-28 15:26:27 · 417 阅读 · 0 评论 -
Fastlane自动打包
Fastlane这里就要引入一个概念了,叫持续集成,引用下百度百科的介绍:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。而今天文章的主角就是Fastlane,一套ruby编写的持续集成工具集。通过Fastlane可以实现自动打包、发...原创 2018-07-10 22:09:16 · 559 阅读 · 0 评论 -
从输入URL到页面加载的过程
对知识体系进行一次预评级看到这道题目,不借助搜索引擎,自己的心里是否有一个答案?这里,以目前的经验(了解过一些处于不同阶段的相关前端人员的情况),大概有以下几种情况:(以下都是以点见面,实际上不同阶段人员一般都会有其它的隐藏知识点的)level1:完全没什么概念的,支支吾吾的回答,一般就是这种水平(大致形象点描述):浏览器发起请求,服务端返回数据,然后前端解析成网页,执行脚本。。。这类人员一般都是...转载 2018-05-31 23:29:31 · 671 阅读 · 0 评论 -
iOS代码混淆
前言自己做iOS开发也有几年的时间了,平时做完项目基本就直接打包上传到Appstore上,然后做上架操作了。但是最近,客户方面提出了代码安全的要求。说是要做代码混淆,这方面的工作之前从来没有接触过。然后就上网查了一下,原来有很多应用程序都做了代码混淆。看来是我固步自封了......起因使用classdump对原程序进行dump,可以dump出所有源程序的函数所有信息:源程序所有函数类型,变量全部泄...原创 2018-05-31 22:45:01 · 642 阅读 · 1 评论 -
数据安全及加密算法对比
平时开发中不仅会遇到各种需要保护用户隐私的情况,而且还有可能需要对公司核心数据进行保护,这时候加密隐私数据就成为了必要。然而市场上存在着各种各样的抓包工具及解密算法,甚至一些公司有专门的逆向部门,这就加大了数据安全的风险,本文将通过以下几个方面对各种加密算法进行分析对比:Base64编码(基础)单项散列函数 MD5、SHA1、SHA256、SHA512等消息认证码 HMAC-MD5、HMAC-SH...原创 2018-05-31 22:37:43 · 467 阅读 · 0 评论 -
iOS中长连接的那些事
一、长连接在iOS开发中的作用一般的App的网络请求都是基于Http1.0进行的,使用的是NSURLConnection、NSURLSession或者是AFNetworking,Http1.0链接最显著的特点就是客户端每一次需要主动向服务端发送请求,都需要经历建立链接、发送请求、返回数据、关闭链接这几个阶段,是一种单向请求且无状态的协议。而有的时候,我们需要服务端主动往客户端进行推送服务的时候,这...转载 2018-04-22 18:11:17 · 622 阅读 · 0 评论 -
iOS App 闪退监测
为保障线上 App 的用户体验,我们一般都会对线上 App 的 crash 率做实时监控,一旦检测到 spike,可以即刻调查原因,但这一切的前提是 crash 日志能够准确上报。crash 日志上报有两个难点:crash handler 安装之前的代码要绝对稳定如果日志采集器还没成功启动就 crash 了,自然什么日志也无法采集到。这一点并没有太多技巧可言,只能严格限制 handler 启动之前...转载 2018-04-22 18:02:49 · 3145 阅读 · 0 评论 -
iOS质量保障工具集
每个App自开发到上线需要经历多个阶段,每个阶段都要把握质量。作为iOS开发者除了从代码规范入手,我们也要从其他多方面提升质量。本文就介绍几款可以提升iOS质量开发的工具。git-flow由于git管理代码版本的灵活性有时会导致版本冲突、代码混乱等问题。为了更好的管理代码,大部分公司都推崇git flow的工作流程,git-flow就是为了实现这套流程的一系列git扩展命令。git-flow 并不...转载 2018-04-22 17:58:52 · 268 阅读 · 0 评论 -
iOS使用fastlane一键打包审核
毋庸置疑,Jenkins对我们打包的帮助还是很大的——被测试的同学追着要IPA包的日子终于一去不复返了。但作为追求效率的开发我们仅仅满足于此就可以了吗,想想我们iOS开发遇到的其他诸多类似的问题吧团队成员一不小心Revoke了证书导致所有的开发小伙伴需要重新下载证书,每次提交App Store审核需要重复【修改证书】- 【打包】-【iTunes Connect】- 【发布】等一系列动作真的是不厌其...转载 2018-04-22 17:46:34 · 584 阅读 · 0 评论 -
WKWebView 的那些事
大量使用webview加载H5,鉴于WKWebView的性能优于UIWebView,所以就选择了WKWebView。WKWebView在使用的过程中,还是有很过内容值得我们去记录和研究的,这里我就做了一下总结,跟大家分享一下。一、基本使用WKWebView的基本使用网上也有很多,这里我就简略的写一下:引入头文件#import <WebKit/WebKit.h>- (void)setup...转载 2018-04-22 17:06:16 · 429 阅读 · 0 评论 -
iOS排版渲染引擎
| 导语 Pluto 是 iOS 上的一个排版渲染引擎,通过 JSON/JS 文件可以很方便地描述界面元素,开发效率很高,并且在流畅度,内存等方便有保证Qzone Feed 业务复杂,样式很多。每次新增一种 Feed 样式,开发工作量很大,需要跟版本。样式之间耦合严重,每改一种样式,另一种样式可能会受影响。基于这样的背景下,Feed Team 急需一个比较成熟的渲染引擎,他至少需要解决以下问题:提...转载 2018-02-28 19:38:26 · 746 阅读 · 0 评论 -
iOS推送后台唤醒
1、前言微信为了解决小商户老板们在频繁交易中不方便核对、确认到账的功能痛点,产品MM提出了新版本需要支持收款到账语音提醒功能。本文借此总结了iOS平台上的APP后台唤醒和语音合成、播放等一系列技术开发过程中遇到的坑和小技巧,希望与您分享。(本文同步发布于:http://www.52im.net/thread-1404-1-1.html)2、技术方案2.1 后台唤醒App收款到账语音提醒需要收款方在...转载 2018-02-28 19:30:14 · 2734 阅读 · 0 评论 -
iOS 11中tableView下移问题
本文主要是对iOS 11下APP中tableView内容下移20pt或下移64pt的问题适配的一个总结。内容包括五个部分:问题的原因分析、adjustContentInset属性的计算方式、什么情况下的tableView会发生内容下移、有哪些解决方法、解决这个问题时遇到的另外一个小问题。一、iOS 11下APP中tableView内容下移20pt或下移64pt的原因分析问题如下图所示:原创 2017-09-25 16:00:32 · 18405 阅读 · 0 评论 -
适配iOS11&iPhoneX的一些坑
下面从几个方面讲解iOS11的特性,和iPhone X的那些事屏幕我们在编码中使用的是以point为单位的屏幕尺寸(在不同设备上每个point对应的实际像素点是不一样的),iPhone 8的尺寸是375pt × 667pt @2x,iPhone X的尺寸是375pt × 812pt @3x,也就是屏幕宽度是一样的,但是高出了145pt,大概能多显示20%的内容。原创 2017-09-25 11:00:26 · 1949 阅读 · 0 评论 -
iOS代码混淆总结
做代码混淆需要六大步骤1:首先你要创建一个工程吧 2:然后打开你的终端 输入cd 然后把你的工程拖进去 回车3:然后 打入一下命令: touch confuse.sh 然后回车4:之后再输入: touch func.list 回车 就行 5:这时候打开你的工程 你会发现一个confuse.sh 和一个func.list文件 这时候点击addfile进去 急着原创 2017-03-13 19:48:33 · 1730 阅读 · 0 评论 -
iOS 组件化,插件化,模块化设计思路分析
iOS 组件化,插件化设计思路分析前言随着用户的需求越来越多,对App的用户体验也变的要求越来越高。为了更好的应对各种需求,开发人员从软件工程的角度,将App架构由原来简单的MVC变成MVVM,VIPER等复杂架构。更换适合业务的架构,是为了后期能更好的维护项目。但是用户依旧不满意,继续对开发人员提出了更多更高的要求,不仅需要高质量的用户体验,还要求快速迭代转载 2017-03-13 19:26:34 · 20951 阅读 · 0 评论 -
JSON数据使用详解
解析方式的优缺对比:系统的API的解析速度最快。SBJSON的解析速度为倒数第二差。与系统API较为接近的是JSONKit。建议选用系统的API或JSONKit来对JSON数据进行解析。如何生成JSON格式的数据?1、利用字典NSDictionary转换为键/值格式的数据。// 如果数组或者字典中存储了 NSString, NS原创 2017-02-14 11:20:45 · 749 阅读 · 0 评论 -
AFNetworking遇到异常 Request failed,AFNetworking详解
AFNetworking遇到异常 Request failed,请求失败的原因有很多种,具体的要看哪种原因了,下面是常见的报错:搜索 “Request failed: unacceptable content-type: text/html” 的解决方案,会有很多人告诉你去修改AFURLResponseSerialization类中的self.acceptableContentTy原创 2017-02-14 11:03:55 · 1647 阅读 · 0 评论 -
MJRefresh遇到的坑
如何让提示文字居中,图片变成动画一. 新旧版本比较旧版本使用说明#import "UIScrollView+MJRefresh.h"/** MJ友情提示: 1. 添加头部控件的方法 [self.tableView addHeaderWithTarget:self action:@selector(headerRereshing)]; 或者 [self.tab原创 2017-02-14 10:36:27 · 1817 阅读 · 0 评论 -
腾讯云通信IM总结
我是第一次集成腾讯云通信IM,只想说一万个cnm。。。先说一下集成的时候遇到的坑吧:1:添加好友不能一次添加成功,如果失败不能马上自动添加2:好友人数限制只能3000人,环信的没有限制3:文档太粗糙了,很多重点没有说出来4:技术支持貌似只有一个人,,,5:官方提供的demo代码混乱,基本上没有注释,逻辑不清晰6:代码易于耦合对于上面那些坑,我只想说呵呵哒,不原创 2017-01-24 10:04:02 · 11572 阅读 · 9 评论 -
iOS转场动画总结
常见的转场动画方案一://创建转场动画对象 CATransition *transition = [[CATransitionalloc]init]; /* The name of the transition. Current legal transition types include * `fade', `m原创 2017-01-09 19:17:07 · 628 阅读 · 0 评论