KeyChainItemCRUDKit 0.0.3

KeyChainItemCRUDKit 0.0.3

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2015 年 11 月
SPM支持 SPM

Pete Barber 维护。



KeyChainItemCRUDKit

一个简单的 Swift 库,用于在 iOS Keychain 中 CRUD 实例化 NSData 和/或实现 NSCoding 的对象

功能

  • 一个用于将 NSCoding 兼容对象保存、加载和删除到 iOS Keychain 中的简单库(单个类)
  • 如果需要,包含完整的新建、读取、更新和删除语义
  • 使用 Swift 编写
  • 作为 CocoaPod 提供

使用

此库有两个接口:

  • KeyChainItemCRUD
  • KeyChainItem

这两个类都是使用两个值构建的:您的应用程序的 BundleId(尽管实际上可以是任何字符串)和一个独特的键(也是一个字符串)来标识您的条目。

KeyChainItemCRUD

let itemCRUDer = KeyChainItemCRUD(bundleId: NSBundle.mainBundle().bundleIdentifier!, keyChainItemKey: “something”)

然后可以调用以下方法:

  • createItem(data: NSData) -> Bool
  • readItem() -> NSData?
  • updateItem(data: NSData) -> Bool
  • deleteItem() -> Bool

这些方法与以下更高级方法的主要区别在于,每个方法都是具体的。createItem()只会创建一个新条目,如果它已存在则返回 false。同样,updateItem()需要一个现有的条目。显然,readItem()也是如此。

除了返回表示成功或失败的价值外,还将底层 KeyChain API 的返回值设置到属性 lastError 中。

KeyChainItem

对于许多目的而言,在保存条目时,是创建它还是更新它并不重要。同样,删除一个不存在的条目通常也不重要。如果是这种情况,请使用这些更高级的方法。首先创建一个 KeyChainItemKey 的实例:

let item = KeyChainItem(bundleId: NSBundle.mainBundle().bundleIdentifier!, keyChainItemKey: “something”)

然后可以调用以下方法:

  • load() -> NSData?
  • save(data: NSData) -> Bool

如果需要加载/保存的对象是 NSCoding 兼容的

  • load() -> T?
  • save(t: T) -> Bool

通用

可以 CRUD 多个条目,但由于每个条目都需要不同的键,因此需要不同的实例。

安装

最低目标系统为iOS 8。源代码可以复制到单独的项目中,但它被打包为框架。

示例

包含了一个示例应用程序。它遵循CocoaPods的标准,称为Example。这是一个简单的单视图应用程序,允许创建、读取、更新和删除单个项。它使用高级对象接口。

测试

提供了CRUD和高级接口的单元测试。