FireflyKV

FireflyKV 对象,主要用于 KV 存储的初始化,存、取等操作,是主要的类。

属性

//自定义加密时的代理
@property(nonatomic,weak) id<FireflyKVEncryptDelegate> _Nullable encrypeDelegate;

Type

typedef enum : NSUInteger {
    FireflyKVTypeNone = 0,//默认
    FireflyKVTypeChaCha20,//使用 ChaCha20 加密算法
    FireflyKVTypeCustom //自定义加密算法
} FireflyKVType;

FireflyKVEncryptDelegate

自定义加密时,用户进行加密

/**
     自定义加密时,用户进行加密

     @param valueData 待加密的二进制数据
     @return 已加密的二进制数据
*/
- (NSData *_Nullable)fireflyKV_customEncryptData:(NSData *_Nullable)valueData;
参数:
属性 类型 说明
valueData NSData *_Nullable 待加密的二进制数据
返回值:
类型
NSData *_Nullable
示例:
- (NSData *_Nullable)fireflyKV_customEncryptData:(NSData *_Nullable)valueData
{
    if (!valueData) return valueData;
    NSData *key = [@"12345678876543211234567887654321" dataUsingEncoding:NSUTF8StringEncoding];
    NSData * iv = [@"1234567887654321" dataUsingEncoding:NSUTF8StringEncoding];
    id<FireflySymmetryCryptoInterface> cipher = [FireflySymmetryCryptoHelper getImplementationWithType:FireflySymmetryCrypto_AES];
    NSData *encData = [cipher encryptData:valueData Key:key ivector:iv mode:FireflySymmetryCryptoMode_CBC padding:FireflySymmetryCryptoPadding_PKCS7 error:nil];
    return encData;
}

自定义加密时,用户进行解密

/**
 自定义加密时,用户进行解密

 @param valueData 待解密的二进制数据
 @return 已解密的二进制数据
 */
- (NSData *_Nullable)fireflyKV_customDecodeData:(NSData *_Nullable)valueData;
参数:
属性 类型 说明
valueData NSData *_Nullable 待解密的二进制数据
返回值:
类型
NSData *_Nullable
示例:
- (NSData *_Nullable)fireflyKV_customDecodeData:(NSData *_Nullable)valueData
{
    if (!valueData) return valueData;
    NSData *key = [@"12345678876543211234567887654321" dataUsingEncoding:NSUTF8StringEncoding];
    NSData * iv = [@"1234567887654321" dataUsingEncoding:NSUTF8StringEncoding];
    id<FireflySymmetryCryptoInterface> cipher = [FireflySymmetryCryptoHelper getImplementationWithType:FireflySymmetryCrypto_AES];
    NSData *decData = [cipher decryptData:valueData Key:key ivector:iv mode:FireflySymmetryCryptoMode_CBC padding:FireflySymmetryCryptoPadding_PKCS7 error:nil];
    return decData;
}

普通初始化

/**
 获得 FireflyKV 对象

 @param path KV 存储库路径
 @return FireflyKV 对象
 */
+ (instancetype _Nullable)fireflyKVWithPath:(NSString *_Nonnull)path;

参数:

属性 类型 说明
path NSString *_Nonnull KV 存储库路径

返回值:

类型
instancetype _Nullable

示例:

FireflyKV *fireflyKV = [FireflyKV fireflyKVWithPath:demoPath];

加密时初始化

/**

 获得 FireflyKV 对象,并存操作 KV 库时使用加密算法

 @param path KV 存储库路径
 @param keyData type 为 FireflyKVTypeChaCha20 时
 @param fireflyKVType 加密类型
 @return FireflyKV 对象
 */
+ (instancetype _Nullable)fireflyKVWithPath:(NSString *_Nonnull)path KeyData:(NSData *_Nullable)keyData fireflyKVType:(FireflyKVType)fireflyKVType;

参数:

属性 类型 说明
path NSString *_Nonnull KV 存储库路径
keyData NSData *_Nullable 为 FireflyKVTypeChaCha20 时的 key 数据
fireflyKVType FireflyKVType 加密类型

返回值:

类型
instancetype _Nullable

示例:

FireflyKV *fireflyKV = [FireflyKV fireflyKVWithPath:demoPath KeyData:nil fireflyKVType:FireflyKVTypeNone];

存储 NSString 类型数值

以 key 作为键存储 NSString 类型数值。

/**
 以 key 作为键存储 NSString 类型数值

 @param value 值
 @param key 键
 @return 存储是否成功
 */
- (BOOL)setString:(NSString *_Nullable)value forKey:(NSString *_Nonnull)key;

参数:

属性 类型 说明
value NSString *_Nullable value 值
key NSString *_Nonnull key 键

返回值:

类型
BOOL

示例:

BOOL result = [fireflyKV setString:value forKey:key];

存储 BOOL 类型数值

以 key 作为键存储 BOOL 类型数值。

/**
 以 key 作为键存储 BOOL 类型数值

 @param value 值
 @param key 键
 @return 存储是否成功
 */
- (BOOL)setBool:(BOOL)value forKey:(NSString *_Nonnull)key;

参数:

属性 类型 说明
value BOOL value 值
key NSString *_Nonnull key 键

返回值:

类型
BOOL

示例:

BOOL result = [fireflyKV setBool:value forKey:key];

存储 int16_t 类型数值

以 key 作为键存储 int16_t 类型数值。

/**
 以 key 作为键存储 int16_t 类型数值

 @param value 值
 @param key 键
 @return 存储是否成功
 */
- (BOOL)setInt16:(int16_t)value forKey:(NSString *_Nonnull)key;

参数:

属性 类型 说明
value int16_t value 值
key NSString *_Nonnull key 键

返回值:

类型
BOOL

示例:

BOOL result = [fireflyKV setInt16:value forKey:key];

存储 uint16_t 类型数值

以 key 作为键存储 uint16_t 类型数值。

/**
 以 key 作为键存储 uint16_t 类型数值

 @param value 值
 @param key 键
 @return 存储是否成功
 */
- (BOOL)setUInt16:(uint16_t)value forKey:(NSString *_Nonnull)key;

参数:

属性 类型 说明
value uint16_t value 值
key NSString *_Nonnull key 键

返回值:

类型
BOOL

示例:

BOOL result = [fireflyKV setUInt16:value forKey:key];

存储 int32_t 类型数值

以 key 作为键存储 int32_t 类型数值。

/**
 以 key 作为键存储 int32_t 类型数值

 @param value 值
 @param key 键
 @return 存储是否成功
 */
- (BOOL)setInt32:(int32_t)value forKey:(NSString *_Nonnull)key;

参数:

属性 类型 说明
value int32_t value 值
key NSString *_Nonnull key 键

返回值:

类型
BOOL

示例:

BOOL result = [fireflyKV setInt32:value forKey:key];

存储 uint32_t 类型数值

以 key 作为键存储 uint32_t 类型数值。

/**
 以 key 作为键存储 uint32_t 类型数值

 @param value 值
 @param key 键
 @return 存储是否成功
 */
- (BOOL)setUInt32:(uint32_t)value forKey:(NSString *_Nonnull)key;

参数:

属性 类型 说明
value uint32_t value 值
key NSString *_Nonnull key 键

返回值:

类型
BOOL

示例:

BOOL result = [fireflyKV setUInt32:value forKey:key];

存储 int64_t 类型数值

以 key 作为键存储 int64_t 类型数值。

/**
 以 key 作为键存储 int64_t 类型数值

 @param value 值
 @param key 键
 @return 存储是否成功
 */
- (BOOL)setInt64:(int64_t)value forKey:(NSString *_Nonnull)key;

参数:

属性 类型 说明
value int64_t value 值
key NSString *_Nonnull key 键

返回值:

类型
BOOL

示例:

BOOL result = [fireflyKV setInt64:value forKey:key];

存储 uint64_t 类型数值

以 key 作为键存储 uint64_t 类型数值。

/**
 以 key 作为键存储 uint64_t 类型数值

 @param value 值
 @param key 键
 @return 存储是否成功
 */
- (BOOL)setUInt64:(uint64_t)value forKey:(NSString *_Nonnull)key;

参数:

属性 类型 说明
value uint64_t value 值
key NSString *_Nonnull key 键

返回值:

类型
BOOL

示例:

BOOL result = [fireflyKV setUInt64:value forKey:key];

存储 float 类型数值

以 key 作为键存储 float 类型数值。

/**
 以 key 作为键存储 float 类型数值

 @param value 值
 @param key 键
 @return 存储是否成功
 */
- (BOOL)setFloat:(float)value forKey:(NSString *_Nonnull)key;

参数:

属性 类型 说明
value float value 值
key NSString *_Nonnull key 键

返回值:

类型
BOOL

示例:

BOOL result = [fireflyKV setFloat:value forKey:key];

存储 double 类型数值

以 key 作为键存储 double 类型数值。

/**
 以 key 作为键存储 double 类型数值

 @param value 值
 @param key 键
 @return 存储是否成功
 */
- (BOOL)setDouble:(double)value forKey:(NSString *_Nonnull)key;

参数:

属性 类型 说明
value double value 值
key NSString *_Nonnull key 键

返回值:

类型
BOOL

示例:

BOOL result = [fireflyKV setDouble:value forKey:key];

存储 NSData 类型数值

以 key 作为键存储 NSData 类型数值。

/**
 以 key 作为键存储 NSData 类型数值

 @param value 值
 @param key 键
 @return 存储是否成功
 */
- (BOOL)setData:(NSData *_Nullable)value forKey:(NSString *_Nonnull)key;

参数:

属性 类型 说明
value NSData value 值
key NSString *_Nonnull key 键

返回值:

类型
BOOL

示例:

BOOL result = [fireflyKV setData:value forKey:key];

取 BOOL 类型数值

通过 key 取 BOOL 值,默认是 NO

普通

/**
 通过 key 取 BOOL 值,默认是 NO

 @param key 键
 @return 值
 */
- (BOOL)getBoolForKey:(NSString *_Nonnull)key;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
返回值:
类型
BOOL
示例:
BOOL result = [fireflyKV getBoolForKey:key];

带默认值

/**
 通过 key 取 bool 值

 @param key 键
 @param defaultValue 默认值
 @return 值
 */
- (BOOL)getBoolForKey:(NSString *_Nonnull)key defaultValue:(BOOL)defaultValue;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
defaultValue BOOL 默认值
返回值:
类型
BOOL
示例:
BOOL result = [fireflyKV getBoolForKey:key defaultValue:NO];

取 NSString 类型数值

通过 key 取 NSString 值,默认是 nil

普通

/**
 通过 key 取 NSString 值,默认是 nil

 @param key 键
 @return 值
 */
- (NSString *_Nullable)getStringForKey:(NSString *_Nonnull)key;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
返回值:
类型
NSString *_Nullable
示例:
NSString *result = [fireflyKV getStringForKey:key];

带默认值

/**
 通过 key 取 NSString 值

 @param key 键
 @param defaultValue 默认值
 @return 值
 */
- (NSString *_Nullable)getStringForKey:(NSString *)key defaultValue:(NSString *_Nullable)defaultValue;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
defaultValue NSString *_Nullable 默认值
返回值:
类型
NSString *_Nullable
示例:
NSString *result = [fireflyKV getStringForKey:key defaultValue:@"1"];

取 int16_t 类型数值

通过 key 取 int16_t 值,默认是 0

普通

/**
 通过 key 取 int16_t 值,默认是 0

 @param key 键
 @return 值
 */
- (int16_t)getInt16ForKey:(NSString *_Nonnull)key;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
返回值:
类型
int16_t
示例:
int16_t result = [fireflyKV getInt16ForKey:key];

带默认值

/**
 通过 key 取 int16_t 值并可以设置默认返回值

 @param key 键
 @param defaultValue 默认值
 @return 值
 */
- (int16_t)getInt16ForKey:(NSString *_Nonnull)key defaultValue:(int16_t)defaultValue;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
defaultValue int16_t 默认值
返回值:
类型
int16_t
示例:
int16_t result = [fireflyKV getInt16ForKey:key defaultValue:1];

取 uint16_t 类型数值

通过 key 取 uint16_t 值,默认是 0

普通

/**
 通过 key 取 uint16_t 值,默认是 0

 @param key 键
 @return 值
 */
- (uint16_t)getUInt16ForKey:(NSString *_Nonnull)key;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
返回值:
类型
uint16_t
示例:
uint16_t result = [fireflyKV getUInt16ForKey:key];

带默认值

/**
 通过 key 取 uint16_t 值并可以设置默认返回值

 @param key 键
 @param defaultValue 默认值
 @return 值
 */
- (uint16_t)getUInt16ForKey:(NSString *_Nonnull)key defaultValue:(uint16_t)defaultValue;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
defaultValue uint16_t 默认值
返回值:
类型
uint16_t
示例:
uint16_t result = [fireflyKV getUInt16ForKey:key defaultValue:1];

取 int32_t 类型数值

通过 key 取 int32_t 值,默认是 0

普通

/**
 通过 key 取 int32_t 值,默认是 0

 @param key 键
 @return 值
 */
- (int32_t)getInt32ForKey:(NSString *_Nonnull)key;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
返回值:
类型
int32_t
示例:
uint16_t result = [fireflyKV getInt32ForKey:key];

带默认值

/**
 通过 key 取 int32_t 值并可以设置默认返回值

 @param key 键
 @param defaultValue 默认值
 @return 值
 */
- (int32_t)getInt32ForKey:(NSString *_Nonnull)key defaultValue:(int32_t)defaultValue;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
defaultValue int32_t 默认值
返回值:
类型
int32_t
示例:
int32_t result = [fireflyKV getInt32ForKey:key defaultValue:1];

取 uint32_t 类型数值

通过 key 取 uint32_t 值,默认是 0

普通

/**
 通过 key 取 uint32_t 值,默认是 0

 @param key 键
 @return 值
 */
- (uint32_t)getUInt32ForKey:(NSString *_Nonnull)key;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
返回值:
类型
uint32_t
示例:
uint32_t result = [fireflyKV getUInt32ForKey:key];

带默认值

/**
 通过 key 取 uint32_t 值并可以设置默认返回值

 @param key 键
 @param defaultValue 默认值
 @return 值
 */
- (uint32_t)getUInt32ForKey:(NSString *_Nonnull)key defaultValue:(uint32_t)defaultValue;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
defaultValue uint32_t 默认值
返回值:
类型
uint32_t
示例:
uint32_t result = [fireflyKV getUInt32ForKey:key defaultValue:1];

取 int64_t 类型数值

通过 key 取 int64_t 值,默认是 0

普通

/**
 通过 key 取 int64_t 值,默认是 0

 @param key 键
 @return 值
 */
- (int64_t)getInt64ForKey:(NSString *_Nonnull)key;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
返回值:
类型
int64_t
示例:
int64_t result = [fireflyKV getInt64ForKey:key];

带默认值

/**
 通过 key 取 int64_t 值并可以设置默认返回值

 @param key 键
 @param defaultValue 默认值
 @return 值
 */
- (int64_t)getInt64ForKey:(NSString *_Nonnull)key defaultValue:(int64_t)defaultValue;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
defaultValue int64_t 默认值
返回值:
类型
int64_t
示例:
int64_t result = [fireflyKV getInt64ForKey:key defaultValue:1];

取 uint64_t 类型数值

通过 key 取 uint64_t 值,默认是 0

普通

/**
 通过 key 取 uint64_t 值,默认是 0

 @param key 键
 @return 值
 */
- (uint64_t)getUInt64ForKey:(NSString *_Nonnull)key;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
返回值:
类型
uint64_t
示例:
uint64_t result = [fireflyKV getUInt64ForKey:key];

带默认值

/**
 通过 key 取 uint64_t 值并可以设置默认返回值

 @param key 键
 @param defaultValue 默认值
 @return 值
 */
- (uint64_t)getUInt64ForKey:(NSString *_Nonnull)key defaultValue:(uint64_t)defaultValue;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
defaultValue uint64_t 默认值
返回值:
类型
uint64_t
示例:
uint64_t result = [fireflyKV getUInt64ForKey:key defaultValue:1];

取 float 类型数值

通过 key 取 float 值,默认是 0

普通

/**
 通过 key 取 float 值,默认是 0

 @param key 键
 @return 值
 */
- (float)getFloatForKey:(NSString *_Nonnull)key;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
返回值:
类型
float
示例:
float result = [fireflyKV getFloatForKey:key];

带默认值

/**
 通过 key 取 float 值并可以设置默认返回值

 @param key 键
 @param defaultValue 默认值
 @return 值
 */
- (float)getFloatForKey:(NSString *_Nonnull)key defaultValue:(float)defaultValue;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
defaultValue float 默认值
返回值:
类型
float
示例:
float result = [fireflyKV getFloatForKey:key defaultValue:1.0];

取 double 类型数值

通过 key 取 double 值,默认是 0

普通

/**
 通过 key 取 double 值,默认是 0

 @param key 键
 @return 值
 */
- (double)getDoubleForKey:(NSString *_Nonnull)key;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
返回值:
类型
double
示例:
double result = [fireflyKV getDoubleForKey:key];

带默认值

/**
 通过 key 取 double 值并可以设置默认返回值

 @param key 键
 @param defaultValue 默认值
 @return 值
 */
- (double)getDoubleForKey:(NSString *_Nonnull)key defaultValue:(double)defaultValue;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
defaultValue double 默认值
返回值:
类型
double
示例:
double result = [fireflyKV getDoubleForKey:key defaultValue:1.00];

取 NSData 类型数值

通过 key 取 NSData 值,默认是 nil

普通

/**
 通过 key 取 NSData 值,默认是 nil

 @param key 键
 @return 值
 */
- (nullable NSData *)getDataForKey:(NSString *_Nonnull)key;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
返回值:
类型
nullable NSData *
示例:
NSData *result = [fireflyKV getDataForKey:key];

带默认值

/**
 通过 key 取 NSData 值并可以设置默认返回值

 @param key 键
 @param defaultValue 默认值
 @return 值
 */
- (nullable NSData *)getDataForKey:(NSString *_Nonnull)key defaultValue:(nullable NSData *)defaultValue;
参数:
属性 类型 说明
key NSString *_Nonnull key 键
defaultValue nullable NSData * 默认值
返回值:
类型
nullable NSData *
示例:
NSData *result = [fireflyKV getDoubleForKey:key defaultValue:nil];

是否包含 key 值

移除 KV 库中的为 key 的数据

/**
 是否包含 key 值

 @param key 键
 @return 是/否
 */
- (BOOL)containsKey:(NSString *_Nonnull)key;

参数

属性 类型 说明
key NSString *_Nonnull key 键

返回值

类型
BOOL
示例:
BOOL result = [fireflyKV containsKey:key];

删除 key 值

移除 KV 库中的为 key 的数据

/**
 移除 KV 库中的为 key 的数据

 @param key 键
 @return 是否删除成功
 */
- (BOOL)removeValueForKey:(NSString *_Nonnull)key;

参数

属性 类型 说明
key NSString *_Nonnull key 键

返回值

类型
BOOL
示例:
BOOL result = [fireflyKV removeValueForKey:key];

清除 KV 库数据

/**
 清除 KV 库数据,可以继续增删改查
 */
- (void)clearAll;

参数

返回值

示例:
[fireflyKV clearAll];

删除 KV 存储库

/**
 删除 KV 存储库

 @return 是否删除成功
 */
- (BOOL)deleteKVDB;

参数

返回值

类型
BOOL
示例:
BOOL result = [fireflyKV deleteKVDB];

清除 KV 缓存对象

一定时间内不会在使用 path 对应的 KVDB

/**
 清除 KV 缓存对象
 一定时间内不会在使用 path 对应的 KVDB
 */
- (void)close;

参数

返回值

示例:
[fireflyKV close];
下一步:

性能对比

Copyright © 民生科技有限公司 2019 all right reserved,powered by Gitbook联系方式: wanglihang@mskj.com
修订时间: 2019-09-03 17:48:17

results matching ""

    No results matching ""