BDPDiskKV.h
4.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
//
// BDPDiskKV.h
// BDPKV
//
// Created by performance for gaobingnan on 2021/3/1.
//
/*
BDPDiskKV *diskKV = [[BDPDiskKV alloc] initKVWithID:@"uniqueId"];
[diskKV setBool:YES forKey:@"bool"];
BOOL bValue = [diskKV getBoolForKey:@"bool"];
[diskKV setInt64:-1024 forKey:@"int64"];
int64_t iValue = [diskKV getInt64ForKey:@"int64"];
[diskKV setString:@"hello" forKey:@"string"];
NSString *str = [diskKV getStringForKey:@"string"];
*/
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface BDPDiskKV : NSObject
/// 初始化diskkv
/// @param mmapID 唯一ID (com.baidu.cocoasettings, etc)
- (nullable instancetype)initKVWithID:(NSString *)mmapID;
/// 初始化diskkv
/// @param mmapID 唯一ID (com.baidu.cocoasettings, etc)
/// @param rootPath 指定路径
- (nullable instancetype)initKVWithID:(NSString *)mmapID rootPath:(nullable NSString *)rootPath;
/// setxxx
/// @param object value(NSObject)
/// @param key NSString类型key
- (BOOL)setObject:(nullable NSObject<NSCoding> *)object forKey:(NSString *)key;
/// setxxx
/// @param object value(id)
/// @param key NSString类型key
/// @param key Class
- (BOOL)setObject:(nullable id)object forKey:(NSString *)key cls:(Class)cls;
/// setxxx
/// @param value value(BOOL)
/// @param key NSString类型key
- (BOOL)setBool:(BOOL)value forKey:(NSString *)key;
/// setxxx
/// @param value value(NSNumber)
/// @param key NSString类型key
- (BOOL)setNumber:(NSNumber *)value forKey:(NSString *)key;
/// setxxx
/// @param value value(NSString)
/// @param key NSString类型key
- (BOOL)setString:(NSString *)value forKey:(NSString *)key;
/// setxxx
/// @param value value(NSDate)
/// @param key NSString类型key
- (BOOL)setDate:(NSDate *)value forKey:(NSString *)key;
/// setxxx
/// @param value value(NSData)
/// @param key NSString类型key
- (BOOL)setData:(NSData *)value forKey:(NSString *)key;
- (BOOL)setInt64:(int64_t)value forKey:(NSString *)key;
- (BOOL)setUInt64:(uint64_t)value forKey:(NSString *)key;
- (BOOL)setFloat:(float)value forKey:(NSString *)key;
- (BOOL)setDouble:(double)value forKey:(NSString *)key;
/// getxxx
/// @param key NSString类型key
- (nullable id)getObjectOfClass:(Class)cls forKey:(NSString *)key;
- (BOOL)getBoolForKey:(NSString *)key;
- (BOOL)getBoolForKey:(NSString *)key defaultValue:(BOOL)defaultValue;
- (int64_t)getInt64ForKey:(NSString *)key;
- (int64_t)getInt64ForKey:(NSString *)key defaultValue:(int64_t)defaultValue;
- (uint64_t)getUInt64ForKey:(NSString *)key;
- (uint64_t)getUInt64ForKey:(NSString *)key defaultValue:(uint64_t)defaultValue;
- (float)getFloatForKey:(NSString *)key;
- (float)getFloatForKey:(NSString *)key defaultValue:(float)defaultValue;
- (double)getDoubleForKey:(NSString *)key;
- (double)getDoubleForKey:(NSString *)key defaultValue:(double)defaultValue;
- (nullable NSNumber *)getNumberForKey:(NSString *)key;
- (nullable NSString *)getStringForKey:(NSString *)key;
- (nullable NSString *)getStringForKey:(NSString *)key defaultValue:(nullable NSString *)defaultValue;
- (nullable NSDate *)getDateForKey:(NSString *)key;
- (nullable NSDate *)getDateForKey:(NSString *)key defaultValue:(nullable NSDate *)defaultValue;
- (nullable NSData *)getDataForKey:(NSString *)key;
- (nullable NSData *)getDataForKey:(NSString *)key defaultValue:(nullable NSData *)defaultValue;
/// 是否包含指定key
/// @param key key NSString类型key
- (BOOL)containsKey:(NSString *)key NS_SWIFT_NAME(contains(key:));
/// 获取kv中数据个数
- (size_t)count;
/// 获取kv中数据总大小(文件大小)
- (size_t)totalSize;
/// 获取kv中数据实际大小(文件中数据大小)
- (size_t)actualSize;
/// 遍历所有key,每次遍历到Key时,都执行传入的Block
/// @param block 封装Block
- (void)enumerateKeys:(void (^)(NSString *key, BOOL *stop))block;
/// 获取所有keys
- (NSArray *)allKeys;
/// 删除指定key对应的数据
/// @param key NSString类型key
- (void)removeValueForKey:(NSString *)key;
/// 删除指定keys数组对应的数据
/// @param arrKeys (NSArray<NSString *> *)
- (void)removeValuesForKeys:(NSArray<NSString *> *)arrKeys;
/// 清除所有数据
- (void)clearAll;
// MMKV's size won't reduce after deleting key-values
// call this method after lots of deleting if you care about disk usage
// note that `clearAll` has the similar effect of `trim`
- (void)trim;
// call this method if the instance is no longer needed in the near future
// any subsequent call to the instance is undefined behavior
- (void)close;
// call this method if you are facing memory-warning
// any subsequent call to the instance will load all key-values from file again
- (void)clearMemoryCache;
// Migrate NSUserDefault data to MMKV
// return imported count of key-values
- (uint32_t)migrateFromUserDefaults:(NSUserDefaults *)userDaults;
@end
NS_ASSUME_NONNULL_END