# CAIStorageManager **Repository Path**: zj1208/CAIStorageManager ## Basic Information - **Project Name**: CAIStorageManager - **Description**: 接入 iOS 客户端的统一存储组件提供以下持久化存储方案: CAIStorageManager:统一存储的入口类。 KV存储:提供接口存储,简化客户端持久化对象的复杂度。 数据库存储:当业务有 sqlite 访问需要时,可由统一存储的CAIFMDB功能进行简化和封装。 LRU存储:提供内存缓存和磁盘缓存的存储方法。 数据清理:创建自动维护容量的缓存目录、提供清理缓存的实现类。 - **Primary Language**: Objective-C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-11-11 - **Last Updated**: 2024-04-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CAIStorageManager ## 简介 支持kv存储,模型数据的文件存储,FMDB数据库本地存储,都支持默认加密 ## Example ###import - (void)testCache{ //plist存储 [[CAIStorageManager sharedInstance]setObject:@"1111" forKey:@"person"]; NSDate *date = [NSDate date]; [[CAIStorageManager sharedInstance]setObject:date forKey:@"person"]; //archive对象存储 Person *person = [[Person alloc] init]; person.name = @"123"; person.age = @(19); [[CAIStorageManager sharedInstance]archiveObject:person forKey:@"person1"]; //统一取对象 id obj = [[CAIStorageManager sharedInstance]objectForKey:@"person"]; //统一方式根据key删除对象 [[CAIStorageManager sharedInstance]removeObjectForKey:@"person"]; //plist默认加密存储 [[CAIStorageManager sharedInstance]setEncodeCryptObject:@"012345" forKey:@"person2" error:nil]; //加密存储中打印错误信息 NSError *error = nil; [[CAIStorageManager sharedInstance]setEncodeCryptObject:@"012345" forKey:@"person3" error:&error]; NSLog(@"%@",error); //archive默认加密存储 Person *person4 = [[Person alloc] init]; person4.name = @"123"; person4.age = @(19); [[CAIStorageManager sharedInstance]archiveEncodeCryptObject:person forKey:@"person4" error:nil]; //统一方式解密获取对象--模型数据 id data2 = [[CAIStorageManager sharedInstance]objectDecodeCryptForKey:@"person4" expectedClass:[Person class] error:nil]; //统一方式删除对象 [[CAIStorageManager sharedInstance]removeObjectForKey:@"person"]; } - (void)testDB{ Person *person = [[Person alloc] init]; person.name = @"123"; person.age = @(19); //数据库设置model数据 [[CAIStorageManager sharedInstance]setTable:@"User2" model:person error:nil]; //数据库设置model数据-加密方式 [[CAIStorageManager sharedInstance]setEncodeWithTable:@"User2" model:person error:nil]; //数据库取model数据 id data = [[CAIStorageManager sharedInstance]fetchDecodeWithTable:@"User2" modelClass:[Person class]]; } /// 数据库额外提供的原子方式 - (void)testDB2{ CAIFMDB *db = [CAIFMDB sharedInstance]; BOOL drop = [db dropTable:@"User"]; NSError *error = nil; BOOL creatFlag = [db createTable:@"User" dic:@{@"name":@"TEXT",@"age":@"INTEGER"} error:&error]; BOOL insetFlag1 =[db insertTable:@"User" dic:@{@"name":@"海参",@"age":@20,@"address":@"杭州"}]; BOOL insetFlag2 =[db insertTable:@"User" dic:@{@"name":@"荔枝",@"age":@19,@"address":@"安徽"}]; NSArray *arr1 = [db fetchTable:@"User" dic:@{@"name":@"TEXT",@"age":@"INTEGER"} whereFormat:nil]; BOOL deleteFlag1 = [db deleteTable:@"User" whereFormat:@"where name = '荔枝'"]; BOOL udpateFlag1 = [db updateTable:@"User" dic:@{@"name":@"海参",@"age":@30} whereFormat:@"where name = '海参'"]; NSArray *arr2 = [db fetchTable:@"User" dic:@{@"name":@"TEXT",@"age":@"INTEGER"} whereFormat:nil]; } ## Requirements ## Installation CAIStorageManager is available through [CocoaPods](https://cocoapods.org). To install it, simply add the following line to your Podfile: ```ruby pod 'CAIStorageManager' ``` ## Author 海参, 879654715@qq.com ## pod update $ pod lib lint --allow-warnings --no-clean --verbose $ pod repo push gitee-zj1208-specs CAIStorageManager.podspec --allow-warnings --verbose ## notice V0.2.2 2023.05.25 1.修改git V0.2.3 2023.05.25 1.archive存储默认改为NSDocumentDirectory路径;