大家晚上好,sqlite 能够保存对象吗,如果不行,那么怎么查出来再转为模型呢?
欢迎选择我的课程,让我们一起见证您的进步~~
当然能保存对象。。。Sqlite就是轻量型的数据库。。如果使用Sqlite的话,只能查出数据来然后alloc OC对象 再进行赋值。。。要想实现自动的话 可以考虑 CoreData
可以存,如果是我,会用 JSON 中转,进数据库时是一个 JSON 字符串,拿出来的时候转对象。其它的也可以,看你喜好了。
如果你想图省事,可以使用 Realm, 直接存取对象。缺点和坑当然也有,我们已经在生产环境用了有2年了
可以使用fmdb查出的数据可以转为字典数组,再进行字典转模型,我一般就这么搞的
NSMutableArray* collectedFood = [NSMutableArray array]; FMDatabase* dataBase = [FMDatabase databaseWithPath:[self dbPath]]; BOOL open = [dataBase open]; if (open) { NSString* selectSql = @"select * from foodCollection order by id desc"; FMResultSet* result = [dataBase executeQuery:selectSql]; while (result.next) { YYFoodModel* foodModel = [[YYFoodModel alloc] init]; foodModel.id = [result stringForColumn:@"foodId"]; foodModel.name = [result stringForColumn:@"name"]; foodModel.pic = [result stringForColumn:@"pic"]; NSData* data = [result dataForColumn:@"measure"]; foodModel.measure = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; foodModel.cal = [result stringForColumn:@"cal"]; foodModel.calOfPerG = [result doubleForColumn:@"calOfPerG"]; foodModel.util = [result stringForColumn:@"util"]; foodModel.calOfUtil = [result stringForColumn:@"calOfUtil"]; foodModel.cnt = [result stringForColumn:@"cnt"]; foodModel.food_measure = [result stringForColumn:@"food_measure"]; foodModel.food_cal = [result stringForColumn:@"food_cal"]; foodModel.checked = [result stringForColumn:@"checked"]; foodModel.remark = [result stringForColumn:@"remark"]; foodModel.desc_url = [result stringForColumn:@"desc_url"]; [collectedFood addObject:foodModel]; } [dataBase close]; } return collectedFood;
用realm吧,oo数据库,sqlite就麻烦点需要Model与db互相转。但是swift又不支持反射,所以你要么手写转换过程,要么Model继承NSObject
当然能保存对象。。。Sqlite就是轻量型的数据库。。如果使用Sqlite的话,只能查出数据来然后alloc OC对象 再进行赋值。。。要想实现自动的话 可以考虑 CoreData
可以存,如果是我,会用 JSON 中转,进数据库时是一个 JSON 字符串,拿出来的时候转对象。其它的也可以,看你喜好了。
如果你想图省事,可以使用 Realm, 直接存取对象。缺点和坑当然也有,我们已经在生产环境用了有2年了
可以使用fmdb查出的数据可以转为字典数组,再进行字典转模型,我一般就这么搞的
用realm吧,oo数据库,sqlite就麻烦点需要Model与db互相转。但是swift又不支持反射,所以你要么手写转换过程,要么Model继承NSObject