MLNKV是基于mmap实现的高性能、内存占用低、跨平台(支持iOS与Android)的Key-Value组件。
pod 'MLNKV'
// init
MLNKV *mlnkv = [MLNKV defaultMLNKV];
// NSString *path = [MLNKVDEFAULTPATH stringByAppendingPathComponent:@".test"];
// MLNKV *mlnkv = [MLNKV mlnkvWithPath:path];
// set
[mlnkv setKVString:@"value" forKey:@"key1"];
[mlnkv setKVBool:YES forKey:@"key2"];
[mlnkv setKVInt32:66666 forKey:@"key3"];
[mlnkv setKVInt64:88888888 forKey:@"key4"];
[mlnkv setKVFloat:66.666 forKey:@"key5"];
[mlnkv setKVDouble:8888888.888 forKey:@"key6"];
[mlnkv setKVObject:@{@"key":@"value"} forKey:@"key7"];
[mlnkv setKVData:data forKey:@"key8"];
// get
int value = [mlnkv getKVInt32ForKey:@"key3"];
...
...
// obj 自己实现序列化 or 使用NSKeyedArchiver
[mlnkv setKVObject:obj forKey:@"key" archiveBlock:^NSData * _Nullable(id _Nonnull obj) {
// ...archive
}];
[mlnkv getKVObjectForKey:@"key" ofClass:clz unarchiveBlock:^id _Nullable(NSData * _Nonnull data) {
// ...unarchive
}];
maven {url "https://dl.bintray.com/sunzt8801/MLNKV"}
implementation "com.mlnkv:mlnkv:0.0.4"
// must call this in MainActivity
MLNKV.initializeBasePath(this);
// init
MLNKV mlnkv = MLNKV.defaultMLNKV();
// String path = MLNKV.basPath() + "/.test";
// MLNKV mlnkv = new MLNKV(path);
// set
mlnkv.setBool("key1", true);
mlnkv.setInt32("key2", 1);
mlnkv.setInt64("key3", 88888888);
mlnkv.setDouble("key4", 8888.888);
mlnkv.setString("key5", "value");
mlnkv.setBytes("key6", bytes);
// get
boolean value = mlnkv.getBool("key1");
...
...
// obj 使用java Serializable
mlnkv.setObject("key", obj);
mlnkv.getObject("key", clz);
MLNKV 使用 MIT 许可证,详情见 LICENSE 文件。