搜尋

首頁  >  問答  >  主體

ios - 大家晚上好,sqlite 能够保存对象吗,如果不行,那么怎么查出来再转为模型呢?

大家晚上好,sqlite 能够保存对象吗,如果不行,那么怎么查出来再转为模型呢?

天蓬老师天蓬老师2771 天前540

全部回覆(4)我來回復

  • 黄舟

    黄舟2017-04-18 09:49:39

    當然能保存對象。 。 。 Sqlite就是一個輕量的資料庫。 。如果使用Sqlite的話,只能查出資料來然後alloc OC物件 再進行賦值。 。 。要實現自動的話 可以考慮 CoreData

    回覆
    0
  • 阿神

    阿神2017-04-18 09:49:39

    可以存,如果是我,會用 JSON 中轉,進資料庫時是一個 JSON 字串,拿出來的時候轉物件。其它的也可以,看你喜好了。

    如果你想圖省事,可以使用 Realm, 直接存取物件。缺點和坑當然也有,我們已經在生產環境用了2年了

    回覆
    0
  • 黄舟

    黄舟2017-04-18 09:49:39

    可以使用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;

    回覆
    0
  • 高洛峰

    高洛峰2017-04-18 09:49:39

    用realm吧,oo資料庫,sqlite就麻煩點需要Model與db互相轉。但是swift又不支援反射,所以你要嘛手寫轉換過程,要嘛Model繼承NSObject

    回覆
    0
  • 取消回覆