- 博客(16)
- 收藏
- 关注
原创 CocoaPods制作包含测试工程的动态库
之前在写App时,使用CocoaPods直接引入工程,非常简单方便。最近要做一个Framwork给其他团队使用,也想来使用CocoaPods来管理Framework库,但是苦于之前只是简单使用CocoaPods,而没有仔细看过。在这个创建Framework库和对应测试工程师,遇到了一些小问题,于是把CocoaPods中的一些用法又重新看了一遍。记录一下:
2016-06-01 16:43:36
1642
原创 利用系统API实现AES加解密功能
AES(高级加密算法)本身是一个比较复杂的加密算法,就算法本身而言,我曾经看过加密原理,但是能力有限,实在是看不懂。这里只是贴出使用iOS自带的API实现的加解密功能代码。作为标记,以免下次用到时,找不到。 在实际使用过程中,为了方便实用,采用了对NSData、NSString类进行扩展的方式,具体代码如下: 1、NSData的扩展 本例
2016-03-21 17:09:42
2170
原创 3D Touch功能之Peek&Pop
3D Touch中的Peek和Pop同Shortcut一样,可以减少App的层级,可以让用户比较快速的看到内容,而不用在Controller之间来回的跳转。 1、Peek和Pop功能说明 以iOS9系统自己的短信功能来说明Peek和Pop功能 1.1、Peek 用户按住某个Cell中显示的短信,
2016-03-11 15:45:53
1098
原创 3D Touch功能之shortcut简析
牛B的6S带上了3D Touch功能,最近忍不住,一咬牙一跺脚,卖了个“肾”,入手一个6s,迫不及待的去看了看3D Touch功能,用起来还是蛮爽的,于是乎就烦了翻果子的开发文档,自己搞了个非常简单的demo,顺便记录一下,以免下次用到时,到处找不到,
2016-03-09 18:37:22
854
原创 iOS应用国际化
国际化说的非常高大上,其实说白了就是App支持多语言,比如常用的支持中文和英文两种。本文主要介绍Xcode后期版本中的App名称和内容国际化,很早以前的Xcode因为果果早已经自己把它们踢出局了,所以在此就不费那个无用功,本例采用的Xcode7.1版本。
2016-03-01 18:18:55
495
转载 优化UITableViewCell高度计算的那些事
本来想写一篇关于cell性能优化的博文,结果发现这个写得很棒,就直接Ctl+V了,感谢博主的分享转自:http://www.youkuaiyun.com/article/2015-05-19/2824709-cell-height-calculation摘要:在将UITableView+FDTemplateLayoutCell自动算高工具更新至1.2版本之后,百度知道iOS团队对UITab
2016-01-29 16:23:10
328
原创 NSClassFromString那点事
相信码农们都听说过反射这个词,今天要说的iOS下的反射使用方法。虽然在Object-C和Swift中都使用NSClassFromString这个方法,但是在使用过程中还是有细微的差别。具体看下面的代码注释吧Object-C中使用Class urlClass = NSClassFromString(controllerValue); //controllerValue为待反射的类名
2016-01-28 18:48:25
1547
原创 3DES加密算法简析
3DES加密算法并非什么新的加密算法,而是DES算法的另一种模式。是现在比较常用的一种对称加密算法,比起DES来说安全性更高。该算法的加解密过程分别是对明文/密文数据进行三次DES加密或解密,得到相应的密文或明文。假设EK()和DK()分别表示DES的加密和解密函数,P表示明文,C表示密文,那么加解密的公式如下: 加密:C = EK3( DK2( EK1(P) ) )
2016-01-26 22:51:44
8616
原创 密钥分散算法简析
密钥分算算法简称Diversify,是指将一个双长度(一个长度密钥为8个字节)的主密钥(MK),对数据进行分散处理,推导出一个双长度的DES加密密钥(DK)。该算法广泛应用于现在的金融IC卡和其他对于安全要求高的行业。其DK推导过程如下: 推导DK左半部分的方法是: 1、将分散数据的最右8个字节作为输入数据; 2、将MK作为加密密钥;
2016-01-26 18:37:46
13760
原创 UIActionSheet动态选项用法
UIActionSheet相信大家都用过,其应用场景还是比较多的,像App中设置用户头像时,选择从相册或拍照来获取头像。还有其他很多场景就不一一列举了。凡此种种都有一个前提条件就是,我们已经知道了有多少个可供选择的项。此时我们就可以用下面的初始化方法去实现: UIActionSheet(title: "请选择您的婚姻状况", delegate: self, cancelButtonTi
2016-01-21 23:01:45
500
原创 Block块/Swift闭包介绍与使用
Block块是随OS X v10.6和iOS 4.0一同发布并可用的功能(在这个Swift2.0都出来了的时候,不用考虑block版本是否可用的问题),其功能类似于C语言的函数。但是与C语言函数不同在于Block可以存取与之在同一个作用域的变量。 1、Block块/Swift闭包实体定义Object-C语法 Block指针定义:
2016-01-18 16:05:36
12485
原创 iOS9搜索三剑客之NSUserActivity
iOS9之前普通的App应用只能够搜索应用名称,通过搜索到的应用来打开对应的应用。而其他的内容搜索功能只能够由苹果提供的系统应用使用,如邮件、短信等。iOS9提供的搜索三剑客为:NSUserActivity,从iOS8开始提供用于记录App状态,在iOS9及之后,不设计隐私内容,默认是可以被手机本地搜索CoreSpotlight,第三方app可以通过CSSearchableItem对象
2015-12-30 17:16:45
2714
原创 iOS9搜索三剑客之CoreSpotlight
iOS9之前普通的App应用只能够搜索应用名称,通过搜索到的应用来打开对应的应用。而其他的内容搜索功能只能够由苹果提供的系统应用使用,如邮件、短信等。iOS9提供的搜索三剑客为:NSUserActivity,从iOS8开始提供用于记录App状态,在iOS9及之后,不设计隐私内容,默认是可以被手机本地搜索CoreSpotlight,第三方app可以通过CSSearchableItem对象
2015-12-30 14:10:53
671
原创 UIGestureRecognizer手势识别详解
iOS应用开发过程,合理的使用手势识别功能来响应用户的操作,能够很好提升用户体验,为App增色。下面对UIGestureRecognizer手势进行一个比较全面的描述: 1、UIGestureRecognizer介绍 UIGestureRecognizer是手势识别的一个抽象类,没法直接使用。好心的苹果大神们已经为我们实现了常用的一些手势识别子类,具体列表如下:
2015-12-25 14:05:51
2482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人