iOS开发技巧
文章平均质量分 90
我们都曾拥有最美的时光
https://github.com/Soulghost
展开
-
利用BBRSACryptor实现iOS端的RSA加解密
背景RSA这种非对称加密被广泛的运用于网络数据的传输,但其在iOS上很那直接实现,BBRSACryptor框架通过移植openssl实现了iOS端的RSA,本文将介绍如何使用BBRSACryptor生成证书,加载公钥,以及后端如何用php读取证书,加载私钥。iOS加密新建工程并集成BBRSACryptor这个框架自带的demo将工程文件与框架放在了同一目录,因此在配置Header Search Pa原创 2016-01-17 21:21:02 · 2089 阅读 · 0 评论 -
iOS端执行包含外部引用的js并相互通信
背景某些情况下,需要调用js的一些代码来执行一些操作,并且将处理结果回传到OC。概述为了执行一段包含外部引用的js,需要使用UIWebView,通过fileURL去加载一个js或者HTML页面,为了方便的在两个语言之间通信,需要借助一个第三方框架WebViewJavascriptBridge,它可以实现跨语言的请求与回调。实现本文讨论的是,从OC调用WebView加载的js的某个方法来处理数据,并且原创 2016-12-06 14:03:47 · 1720 阅读 · 0 评论 -
iOS控制反转(IoC)与依赖注入(DI)的实现
背景最近接触了一段时间的SpringMVC,对其控制反转(IoC)和依赖注入(DI)印象深刻,此后便一直在思考如何使用OC语言较好的实现这两个功能。Java语言自带的注解特性为IoC和DI带来了极大的方便,要在OC上较好的实现这两个功能,需要一些小小的技巧。控制反转和依赖注入控制反转简单来说,将一个类对象的创建由手动new方式改为从IOC容器内获取,就是一种控制反转,例如我们现在要创建一个Class原创 2016-08-21 22:37:23 · 6122 阅读 · 5 评论 -
iOS开源照片浏览器框架SGPhotoBrowser的设计与实现
简介近日在制作一个开源加密相册时附带着设计了一个照片浏览器,在进一步优化后发布到了GitHub供大家使用,该框架虽然没有MWPhotoBrowser那么强大,但是使用起来更为方便,操作更符合常规相册习惯,自定义和修改源码也十分简单。 本文主要介绍这个照片浏览器框架的技术要点,如果要深入研究和使用,可以在下面的链接中下载源码。如果你对这个框架有兴趣,可以点击这里前去GitHub下载源码,欢迎Star原创 2016-07-29 21:43:42 · 6404 阅读 · 0 评论 -
基于AOP的iOS用户操作引导框架设计
背景有一种现象,App设计者觉得理所当然的操作方式,却常常被用户所忽视,为了防止这种现象发生,就要为App设计一个帮助,一种低成本的方案是将帮助文档写成HTML然后展示给用户,这样的方式常常不能带来好的效果,一种较好的方式是高亮用户应该点击的区域,对其他部分进行遮盖,并用说明文字提醒用户,如下图所示。点击这里观看动画演示 下载框架SGUserGuide已经上传到github,点击前去github下原创 2016-07-06 17:58:36 · 2882 阅读 · 0 评论 -
iOS图形手势识别框架SGGestureRecognizer
简介苹果官方为我们提供了简单手势的识别器,但对于图形手势,例如五角星、三角形等的识别,就需要自己实现了。通过识别这些手势,可以去执行特定的操作,或是输入公式、释放魔法等,可以为App增光添彩。下载与使用该框架已经上传到github,点击这里前去下载,欢迎Star! 有关该框架的使用在github上已经写明,这里不再赘述,本文主要介绍的是图形手势识别的实现原理与框架的结构。框架的结构一个图形手势是一原创 2016-07-03 17:56:38 · 4398 阅读 · 1 评论 -
WiFi文件上传框架SGWiFiUpload
背景在iOS端由于文件系统的封闭性,文件的上传变得十分麻烦,一个比较好的解决方案是通过局域网WiFi来传输文件并存储到沙盒中。简介SGWiFiUpload是一个基于CocoaHTTPServer的WiFi上传框架。CocoaHTTPServer是一个可运行于iOS和OS X上的轻量级服务端框架,可以处理GET和POST请求,通过对代码的初步改造,实现了iOS端的WiFi文件上传与上传状态监听。下载与原创 2016-06-30 13:14:51 · 4613 阅读 · 7 评论 -
基于Nginx服务器和iOS9的HTTPS安全通信
简介在网络通信中,使用抓包软件可以对网络请求进行分析,并进行重放攻击,重放攻击的解决方案一般是使用一个变化的参数,例如RSA加密的时间戳,但考虑到网络传输时延,时间戳需要有一定的误差容限,这样仍然不能从根本上防止重放攻击。想要较好的解决重放攻击问题,应考虑使用HTTPS通信,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。实现对于用浏览器访问的网站原创 2016-03-02 17:08:22 · 2671 阅读 · 2 评论 -
在OC代码中创建Swift编写的视图控制器
背景近日在和一群朋友做项目,我和另一位同学负责iOS客户端,我是一直使用OC的,而他只会Swift,因此在我们分工协作之后,就需要把代码合在一起,这就牵扯到如何在TabbarController中添加一个Swift创建的子控制器的问题。解决首先在一个OC项目中新建一个Swift类,继承自UITableViewController,并且修改其view背景色,方便后续测试。import UIKit cl原创 2015-12-06 10:33:40 · 1945 阅读 · 0 评论 -
利用CocoaHTTPServer实现wifi局域网传输文件到iphone
背景近日在做一个代码阅读器,其中涉及到代码文件的上传,之前看到过许多app支持局域网传文件,因此就通过查询和研究实现了此功能,我是用的框架是CocoaHTTPServer。原理CocoaHTTPServer框架能够在iOS上建立起一个本地服务器,只要电脑和移动设备连入同一热点,即可使用电脑访问iOS服务器的页面,利用POST实现文件的上传。实现CocoaHTTPServer没有现成的向iOS设备传输原创 2015-12-20 19:10:34 · 6803 阅读 · 7 评论 -
UIScrollView实现图片轮播器的无限滚动
简介在现在的一些App中常常见到图片轮播器,一般用于展示广告、新闻等数据,在iOS内并没有现成的控件直接实现这种功能,但是通过UIScrollView的允许分页设置,可以实现滚动轮播的功能。轮播原理UIScrollView对象有pagingEnable成员,如果设置为YES,那么每一个scrollView尺寸这么大的区域就会被当作一页,在滚动时会根据滚动的比例自动计算应该切换到哪一页。无限滚动原理要原创 2015-11-30 18:00:38 · 5804 阅读 · 1 评论 -
iOS端JSON转Model链式编程框架SuperKVC用法与原理
背景在客户端编程中,字典转模型是一个极为常见的问题,苹果提供了KVC来实现NSDictionary到Model的注入,但是KVC只能进行单层浅注入,且无法处理类型转换、key与属性名不对应、深度注入等问题,笔者从Masonry得到启发,开发了一个通过链式配置注入器实现深度注入、类型转换、key-属性名映射等功能的轻量级注入框架SuperKVC。目前已经开源到GitHub,点击这里前往,欢迎Star和原创 2017-04-16 10:36:32 · 2487 阅读 · 0 评论