SwiftLvDB
一个快速键值存储库,Leveldb for Swift。
- 支持基本类型 [int,float,double,bool,string...]
- 支持对象 [Object:NSCode]
- 支持列表
- 支持哈希表
- 支持内存缓存(LRU)
- 支持 Codeable(V2.0.0)
CocoaPods 静态链接库安装
pod 'SwiftLvDB'
用法
###创建 SwiftLvDB 对象
let sldb = SwiftLvDB.sharedInstance
or
let sldb = SwiftLvDB(subName: "sldb")
如果在多个线程中使用相同的
init:subName
数据库,确保SwiftLvDB
实例是唯一的;在init:subName
之前调用close()
###为键设置值
let testValue:String = "hello"
let testKey = "testSaveString"
SwiftLvDB.sharedInstance.set(testValue, forKey: testKey)
###获取键的值
let testKey = "testSaveString"
let value = SwiftLvDB.sharedInstance.string(forKey: testKey)
###保存结构体、ArrayList 或 HashMap,建议使用 Codeable
协议
struct TestStruct:Codable,Equatable{
var a:Int
var b:String
static func == (lhs: Self, rhs: Self) -> Bool{
return lhs.a == rhs.a && lhs.b == rhs.b
}
}
let testKey = "testSaveCodeable"
let testvalue = TestStruct(a: 1, b: "hello")
try sldb.set(testvalue, forKey: testKey)
sldb.codeableObject(TestStruct.self, forKey: testKey)
let testValue:[Int] = [1,2,3,4,5]
let testKey = "testSaveList"
try sldb.set(testValue, forKey: testKey)
sldb.codeableObject([Int].self, forKey: testKey)
var testValue:[String:Int] = [:]
testValue["1"] = 1
testValue["2"] = 2
let testKey = "testSaveList"
try sldb.set(testValue, forKey: testKey)
sldb.codeableObject([String:Int].self, forKey: testKey)