一、下载 libqrencode SDK
1、先引入编译需要的Framework导入libsqlite3.tbd
二、创建单列类并使用libsqlite数据库
1、在.h中先导入头文件
#import
#import "Model.h"
2、在定义方法如图:
二、在单列类显示
// 打开数据库
-(void)openDataBase{
//创建沙盒路径
NSString * str = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSLog(@"12312312%@",str);
//在沙盒路径下创建一个db文件
NSString * path =[str stringByAppendingPathComponent:@"aiyo.db"];
NSLog(@"path=========%@",path);
//如果存在直接打开 不存在 创建后打开
if(sqlite3_open([path UTF8String], &(sqliteDB)) == SQLITE_OK)
{
NSLog(@"打开成功");
[self createDataBase];
}
}
//初始化数据库 创建数据库
-(void)createDataBase{
//创建预编译指针
const char * sqla = "create table if not exists aiya (id integer primary key, image text)";
//将sql语句编译到预编译指针内部
sqlite3_stmt * stmt;
//执行sql语句
sqlite3_prepare(sqliteDB, sqla, -1, &stmt, nil);
if (sqlite3_step(stmt) == SQLITE_DONE)
{
NSLog(@"创建成功");
}
//释放预编译指针
sqlite3_finalize(stmt);
}
//添加数据
-(void)addMusicData:(Model *)mod{
const char * sqla = "insert into aiya values(null,?)";
sqlite3_stmt * stmt;
sqlite3_prepare(sqliteDB, sqla, -1, &stmt, nil);
sqlite3_bind_text(stmt, 1 , [mod.image UTF8String], -1, nil);
if (sqlite3_step(stmt) == SQLITE_DONE)
{
NSLog(@"添加成功");
}
sqlite3_finalize(stmt);
}
//查询数据
-(NSMutableArray *)selectDataBase{
const char * sqla = "select * from aiya";
sqlite3_stmt * stmt;
sqlite3_prepare(sqliteDB, sqla, -1, &stmt, nil);
NSMutableArray * muarr = [NSMutableArray array];
while (sqlite3_step(stmt) == SQLITE_ROW)
{
Model * model = [[Model alloc]init];
model.image = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 1)];
data = [[NSData alloc]initWithBase64Encoding:model.image];
[muarr addObject:data];
NSLog(@"%ld",muarr.count);
// NSLog(@"%@",data);//没有问题 64进制
}
return muarr;
}
//关闭数据库
-(void)closeDataBase{
sqlite3_close(sqliteDB);
}
三、在model里定义属性
四、在本类里实现峰方法
1、在ViewController.m导入头文件
#import "QRCodeGenerator.h"
#import "LoadData.h"
#import "AppDelegate.h"
#import "Model.h"
2、定义全局变量model
3、实现保存的方法如图: