-
pod开源库和本地私有库的制作
由于年前项目业务繁忙和过年时的忘我嗨状态,博客许久未更新,新的一年小目标之一是整理一个自己的快速开发app的类开源库,首先第一步就是本文所写,如何制作一个依赖库。git账号的申请和pod的安装不赘述了,应该都会有,并且比较简单。##制作依赖库###1.工程准备在自己的github主页新建一个repository工程,名字跟自己待制作的依赖库名字不要一样(注意不要一样,不然后面会有路径问题),新建完成后git clone 项目地址到本地###2.依赖库相关配置及文件到本地项目与.xcodep...…
-
MLeakFinder检测内存泄露实践
ARC确实减轻了程序员许多的内存管理工作,但是也为项目埋下了不少的隐患,没有怎么经历过MRC项目的程序员就会写下很多内存泄露的代码,Xcode自带工具Leaks是MRC时期产物,对于ARC环境经常出现的Abandoned memory(Memory still referenced by your application that has no useful purpose)是无法检测到的。更多的内存管理知识可以参读这篇文章。本文就是借助微信的一个团队WeRead开源的工具MLeakFin...…
-
iOS代码质量检测
项目在研发过程中需要时刻关注代码质量,我们通常会使用 OCLint 工具来生成静态代码分析报告,使用 Slather 生成单元测试覆盖率报告,但这些报告相对来说都太过简陋,而 SonarQube 以一种可视化的方法来展示代码中存在的问题,本文将介绍如何使用 SonarQube 展示 OCLint 扫描后的报告。##安装软件这里以 Ubuntu 16.04 为例介绍如何安装 SonarQube,SonarQube 运行依赖几个东西:JDK 和 MySQL,所以在安装 SonarQube 之前...…
-
苹果官方人脸识别API的使用
人脸识别,看似一个很高深的东西,但是苹果官方接口提供了一些基本的API供大家使用,普通需求完全够用,如果你要从底层自己实现或者有其它一些要求更高的需求就另辟蹊径吧。1.使用CoreImage的API拿到图片的人脸特征信息 // 图像识别能力:可以在CIDetectorAccuracyHigh(较强的处理能力)与CIDetectorAccuracyLow(较弱的处理能力)中选择,因为想让准确度高一些在这里选择CIDetectorAccuracyHighNSDictionary *opts =...…
-
同一个界面的多个请求处理
现在面对一个需求,需要在当前控制器中请求多个网络接口,等所有请求回调成功后在用数据刷新界面UI。1.普通解决方案可能大家会想用一个临时的布尔值去记录每个请求的回调成功与否的状态,最后再通过判断每个请求对应的状态值来决定刷新UI的时机。请求少(一个两个)的情况还可行,但是当请求过多就有问题了:每个接口的回调部分都需要对其请求的状态布尔值赋值,然后判断是否所有请求的状态值都为完成状态,代码缀余情况严重,切可读性极差。最重要的是low!!2.GCD方案a.信号量基本函数:dispatch_sem...…
-
git代码仓库下的代码统计
当你的代码托管在github仓库,统计每个开发者的代码贡献,可以使用git_stats,适用于多种语言,使用方法如下:1.安装$ gem install git_stats或者$ sudo apt-get install ruby$ sudo gem install git_stats2.生成报告cd到你的git本地目录,然后命令行输入git_stats generate然后工具就会自动分析并帮你统计代码情况了了,这个过程视你的工程大小了,100万行10000个文件差不多耗时半小时(仅作参...…
-
ARC环境下容易忽略的内存问题
此文章为内存问题小记,记录一些容易忽视的内存问题1.NSString的内存问题尽量使用copy修饰NSString,不然可能会出现外部赋值变量变化后,NSString也跟着变化,原因是指向同一地址,copy则是对其做了一份深度拷贝,指针已经变化了。NSString *a0 = @"aaa";这种初始化方法初始出来的是一个常量字符串__NSCFConstantString,在编译的时候会把它添加到常量表,而常量表的变量在APP结束之后才会释放,不受自动内存管理机制的管理。所以当出现循环创建字...…
-
iOS 9 Universal links 实践
最近一个多月公司项目UI大改,做的都是大量重复的简单工作,一是没时间二是没有什么新的技术点,唯一遇到的新的值得写个小文章记录一下的就是这个了。Universal links简介Universal links是苹果在WWDC 2015上为iOS 9宣布加入的一个所谓通用链接的深层链接特性,视频介绍和官方说明文档,官方描述是Deep link,是系统级的跳转功能,通过传统 HTTP 链接来启动 App, 使用相同的网址打开网站和 App。重要的是不需要特别的schema,其他App阻止不了跳转...…
-
如何将自己项目的代码文档导出为苹果样式
代码技术文档代码技术文档是很多大公司的必做工作,这一步如果做得好,在后续的开发迭代中会少出现许多bug,而且不管开发人员如何迭代,都能快速地上手新项目,这样就能无形当中降低公司的成本。磨刀不误砍柴工,这个道理谁都懂。但是很多小公司或者是程序员可能会怕麻烦,增加工作量,便不去做这个东西,这就导致了很多小公司两三个或三四个人去维护一个项目,在每次更新迭代的时候都会出现同样的bug或者问题,或者是有人员流动的时候,新入员工需要花大量时间去阅读了解代码,后期还不一定会避免一些老的低级bug。表面上...…
-
gif图片制作相关
今年是GIF图片诞生30周年,而且一直对iOS的GIF图片比较感兴趣,前两天就花了点时间研究了一下,在此跟大家分享,共同学习,共同进步!大家也可以直接看DEMO,里面在关键地方都有注释。gif图片本质GIF图片其实和jpg图片一样,是一种流行的图形文件格式。但大家不要以为GIF都是动图,它也是有静态的,只不过我们通常看到的都是动的图片,所以下意识地人为GIF都是动图。gif动图我们主要来研究GIF动图,其实它就是一个图片连续播放的效果而已,只不过这不是我们手动来实现的,各个平台已经对它进行...…