ios - 大家晚上好,sqlite 能够保存对象吗,如果不行,那么怎么查出来再转为模型呢?
天蓬老师
天蓬老师 2017-04-18 09:47:39
0
4
545

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

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(4)
黄舟

Bien sûr, les objets peuvent être sauvegardés. . . SQLite est une base de données légère. . Si vous utilisez SQLite, vous pouvez uniquement trouver les données, puis allouer l'objet OC, puis l'attribuer. . . Si vous souhaitez réaliser une implémentation automatique, vous pouvez envisager CoreData

阿神

Il peut être enregistré. Si c'était moi, j'utiliserais JSON pour le transférer Lorsqu'il sera entré dans la base de données, ce sera une chaîne JSON, et lorsqu'il sera retiré, il sera transféré vers l'objet. . D'autres sont également disponibles, cela dépend de vos préférences.

Si vous souhaitez éviter les ennuis, vous pouvez utiliser Realm pour accéder directement aux objets. Bien sûr, il y a des défauts et des pièges. Nous l'utilisons dans un environnement de production depuis 2 ans

黄舟

Vous pouvez utiliser fmdb pour rechercher les données et les convertir en un tableau de dictionnaire, puis convertir le dictionnaire en modèle. C'est ainsi que je procède habituellement

.
    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;
小葫芦

Utiliser le domaine, la base de données, sqlite est plus gênant et nécessite que le modèle et la base de données se convertissent. Mais Swift ne prend pas en charge la réflexion, vous devez donc soit écrire le processus de conversion à la main, soit le modèle hérite de NSObject

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal