【问题标题】:sqlite not returning(select clause) data in the order data was inserted from NSArraysqlite 不返回(选择子句)订单数据中的数据是从 NSArray 插入的
【发布时间】:2014-04-17 18:32:07
【问题描述】:

我正在学习用于 ios 集成的 sqlite。 我的问题是如何让行的顺序与 sql-insert 时的顺序相同? 伙计们,我有两个 NSArray 保存一些数据。我将它们插入到这样的表中:

NSMutableArray *arrayFieldName = [[NSMutableArray alloc] initWithArray:[data objectForKey:@"arrayFieldNameKey"]] ;

NSMutableArray *arrayFieldValue = [[NSMutableArray alloc] initWithArray:[data objectForKey:@"arrayFieldValueKey"]] ;

日志如下:

Printing description of arrayFieldName:

(

出生日期,

共和国,

婚姻,

货币,

激励,

面试日期,

爱好,

坦克在线,

技能,

萨尔范围

)

arrayFieldValue 的打印说明: (

2014-04-13,

Rep26,

2014-03-17,

56,

58,

2 月 20 日,

,

雷声,

|#|PHP|#|Java|#|Python|#|,

|#|0 - 10k|#|10k - 20k|#|20k -30k|#|

)

上述日志符合预期。 现在我执行选择以获取 fieldName 和 fieldValue:

NSMutableArray *arr = [[NSMutableArray alloc] init];
FMResultSet *rs = [db executeQuery:@"SELECT * FROM customer_custom_fields where customer_id=? AND deleted = 0", custId];
while ([rs next])
{
    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
    [dic setObject:[rs stringForColumn:@"field_name"] forKey:@"field_name"];
    [dic setObject:[rs stringForColumn:@"field_value"] forKey:@"field_value"];
    [dic setObject:[rs stringForColumn:@"deleted"] forKey:@"deleted"];
    [dic setObject:[rs stringForColumn:@"update_date"] forKey:@"update_date"];
    [arr addObject:dic];
}


return arr;

结果如下所示:

例如货币成为第一位,出生日期成为第二位..

任何建议

【问题讨论】:

    标签: sql iphone sqlite nsarray


    【解决方案1】:

    那是因为您使用的是 NSMutableDictionary,它以不按顺序存储数据。为此,您可以创建模型类,例如。为客户命名并添加货币浮动、出生日期作为日期或字符串等属性。

    【讨论】:

    • 如果您在将数据保存到可变字典之前看到选择查询,它已经是无序的,因此无论我采用 nsmutable/model 类
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2013-05-12
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    相关资源
    最近更新 更多