之前草草写了一篇OC版本的,再写Swift版本时发现好多可以优化的地方。今天先把Swift版本的和大家共享下,稍后再发一篇OC优化版
关于KeyChain有很多的相关资料,大家去网上看看,需要注意的是:
1). kSecAttrServer可以作为一个搜索的Key来获取App KeyChain的对应Value;根据不同的kSecAttrServer来保存不同的Value,本例只保存了一个UUID;
2).SecItemUpdate()函数,第二个Dictionary只需要传入需要更新的值即可:
var updateDictionary = NSMutableDictionary()
updateDictionary.setObject(NSKeyedArchiver.archivedDataWithRootObject(data), forKey: kSecValueData as String)
var status = SecItemUpdate(mDictionary,updateDictionary)
3)程序删除以后KeyChain还是存在的,代码里面提供了对应的更新和删除方法,直接上代码了。
1.文件组成:
2.MyKeyChainManager.swift 代码,增、删、改、查四个方法:
import Foundation
let _SingLetonKeyChainManager = MyKeyChainManager()
class MyKeyChainManager {
//单例模式
class var sharedInstance: MyKeyChainManager{
return _SingLetonKeyChainManager
}
private init() {
}
//根据不同的service获