一、简介
keychain是苹果提供的一种较为安全的数据存储形式,keychain不会因APP的删除而丢失,重新安装APP之后,数据还会存在。使用时需要导入Security.framework框架
二、基础使用方法
增:SecItemAdd(CFDictionaryRef attributes,CFTypeRef *result)
增加一个或多个条目到keychain,注意参数使用时需要将Core Foundation对象转换成Objective-C类型对象使用(_bridge_transfer CFDictionaryRef)myDictionary;返回值为OSStatus即为一个有符号的整型数据表明操作是否成功,在SecBase.h中都错误代码说明。
CFTypeRef *result是CFData得引用,若不想获得增加的条目设为NULL。
删:SecItemDelete(CFDictionaryRef query)
删除匹配的条目,参数与返回值与增加相同。
改:SecItemUpdate (CFDictionaryRef query,CFDictionaryRef attributesToUpdate)
修改匹配到到条目,attributesToUpdate包含一个或多个明确指定的值。
查:SecItemCopyMatching (CFDictionaryRef query, CFTypeRef *result)
CFTypeRef *result是CFData得引用
CFData *result = nil;
SecItemCopyMatching(query,&result);result指向查找出来的结果
查找的时候可以通过字典的形式来预先设置返回的类型和数目,如:kSecReturnData,kSecMatchList
当Xcode创建新APP时会在bundle中添加一个唯一标示符来区分。可以通过唯一标示符来进行区分每个应用的keychain。
如果多个APP之间共享keychain 可以设置一个kSecAttrAccessGroup的共享名字来进行访问。