指纹识别

简单介绍

指纹识别功能是 iphone 5S之后推出的, SDK是 iOS 8.0 推出!
推出指纹识别功能的目的,是为了简化移动支付环节,占领移动支付市场. 同时可以作为需要较高级别保护用户隐私的 APP 的登录检验方式。

iOS特别技能点总结5

字典转为Json字符串

  //字典转为Json字符串
+(NSString *)dictionaryToJson:(NSDictionary *)dic
{
    NSError *error = nil;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error];
    re
    turn [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}

加密算法和网络

堵塞”(Logjam)

堵塞”(Logjam)漏洞威胁许多网页服务器和邮件服务器,影响所有主流浏览器以及支持512位迪菲-赫尔曼(Diffie-Hellman)密钥交换协议的服务器。而且,美国国家安全局(NSA)很可能就是利用这个漏洞破解VPN、HTTPS和SSH等协议,以访问相关网络流量的。

Diffie-Hellman

Diffie-Hellman:一种确保共享KEY安全穿越不安全网络的方法,它是OAKLEY的一个组成部分。Whitefield与Martin Hellman在1976年提出了一个奇妙的密钥交换协议,称为Diffie-Hellman密钥交换协议/算法(Diffie-Hellman Key Exchange/Agreement Algorithm).这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。

iOS 本地文件路径

一、本地文件存储位置

1、Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。

2、AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。

3、Library 目录:这个目录下有两个子目录:Caches 和 Preferences

Preferences 目录:包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好.
Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。

4、tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

关联ObjC

关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)

定义:关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。

在类的定义之外为类增加额外的存储空间

使用关联,我们可以不用修改类的定义而为其对象增加存储空间。这在我们无法访问到类的源码的时候或者是考虑到二进制兼容性的时候是非常有用。

关联是基于关键字的,因此,我们可以为任何对象增加任意多的关联,每个都使用不同的关键字即可。关联是可以保证被关联的对象在关联对象的整个生命周期都是可用的(在垃圾自动回收环境下也不会导致资源不可回收)。

UICollectionView - 使用二

UICollectionViewLayout

终于到UICollectionView的精髓了…这也是UICollectionView和UITableView最大的不同。
UICollectionViewLayout可以说是UICollectionView的大脑和中枢,它负责了将各个cell、Supplementary View和Decoration Views进行组织,为它们设定各自的属性,包括但不限于:

    位置
    尺寸
    透明度
    层级关系
    形状
    等等等等…

Layout决定了UICollectionView是如何显示在界面上的。
在展示之前,一般需要生成合适的UICollectionViewLayout子类对象,并将其赋予CollectionView的collectionViewLayout属性。

UICollectionView - 使用一

什么是UICollectionView

UICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最简单的形式)。

最简单的UICollectionView就是一个GridView,可以以多列的方式将数据进行展示。标准的UICollectionView包含三个部分,它们都是UIView的子类:

*  Cells 用于展示内容的主体,对于不同的cell可以指定不同尺寸和不同的内容 
*  Supplementary Views 追加视图 如果你对UITableView比较熟悉的话,可以理解为每个Section的Header或者Footer,用来标记每个section的view
*  Decoration Views 装饰视图 这是每个section的背景,

iOS开发中的几种设计模式介绍

iOS 开发学习中,经常使用的几种开发模式,现在进行简单的总结和探讨:

代理模式

应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。
优势:解耦合
敏捷原则:开放-封闭原则

实例:tableview的 数据源delegate,通过和protocol的配合,完成委托诉求。
列表row个数delegate
自定义的delegate