IOS 数据库底层封装和Block回调
来源:互联网 发布:婚纱摄影后期软件 编辑:程序博客网 时间:2024/05/08 09:39
生成单例包含查询和操作(添加,删除,修改)
@interface DataBaseModel(){ dispatch_queue_t serialqueue;}@property(nonatomic)sqlite3 *database;@property(nonatomic,strong)NSString *dataPath;@end@implementation DataBaseModelstatic NSString *myPath;static DataBaseModel *s_instance;-(instancetype)init{ NSArray *array=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *path=[array objectAtIndex:0]; path=[path stringByAppendingPathComponent:@"xixi_db.sqlite"]; self.dataPath = path; serialqueue = dispatch_queue_create("seral", DISPATCH_QUEUE_SERIAL); int result=sqlite3_open([_dataPath UTF8String],&_database); if (result == SQLITE_OK) {// DLog(@"打开数据库"); }else{// DLog(@"打开数据库失败"); } return self;}+(instancetype)sharedinstance{ @synchronized (self) { if (!s_instance) { s_instance = [[DataBaseModel alloc]init]; } } return s_instance;}//查询-(void)searchDataFromExeSql:(NSString *)exesql DataHandle:(void (^)(sqlite3_stmt *))datahandle IoCompleteHandle:(void (^)(BOOL))completeIoHandle{ dispatch_async(serialqueue, ^{ //打开数据库成功 sqlite3_stmt *stmt = nil; int result = sqlite3_prepare_v2(_database, [exesql UTF8String], -1, &stmt, NULL); if (result == SQLITE_OK) { while (sqlite3_step(stmt)==SQLITE_ROW) { datahandle(stmt); } completeIoHandle(YES); sqlite3_finalize(stmt); }else{ completeIoHandle(NO); sqlite3_finalize(stmt); } });}//执行sql-(void)exeSql:(NSString *)sql completeHandle:(void(^)(BOOL isExeOk))complete{ dispatch_async(serialqueue, ^{ char *error; int result1 = sqlite3_exec(_database, sql.UTF8String, NULL, NULL, &error); if (result1==SQLITE_OK) { complete(YES); }else{ complete(NO);// DLog(@"操作失败%s",error); } });}@end
0 0
- IOS 数据库底层封装和Block回调
- IOS 底层封装Block动画的原理解析
- ios 网络请求和数据库一起封装,block回调
- iOS 底层实现 - Block
- iOS--block底层代码探究
- iOS block与封装
- ios函数 二、三次封装和block作用
- iOS中OC:block底层实现原理
- iOS OC语言: Block底层实现原理
- iOS OC语言: Block底层实现原理
- iOS Block底层实现原理详解
- iOS OC语言: Block底层实现原理
- iOS中block实现的底层探究
- iOS中block实现的底层探究
- iOS OC语言: Block底层实现原理
- ios按钮事件的block封装
- iOS-利用Block二次封装AFNetworking 3.0
- iOS中block实现的底层探究2
- Aspose.Cell 导出Excel
- 怎么才能做一个成功的微商!
- 最小费用流
- 0417
- 组织机构树
- IOS 数据库底层封装和Block回调
- labview 2016安装
- SQL表达式,条件语句与运算
- 论文阅读-《Joint Object and Part Segmentation using Deep Learned Potentials》
- Android 指纹解锁和MD5加密密码
- VS2015 tfs的使用教程
- MATLAB实现最小二乘法
- 软件开发流程
- js 文件上传