【问题标题】:populate array in sqlite while在sqlite中填充数组同时
【发布时间】:2011-04-06 05:22:55
【问题描述】:

我在做一些根本性的错误,但我正在网上寻找更好的例子,但结果很短:-(

在.h @interface MyDataViewController : UIViewController {

NSArray *array;
}
@property (nonatomic, retain) NSArray *array;

在米

@synthesize array;

成功的dbretrieval:

while (sqlite3_step(statement) == SQLITE_ROW) {
            //I guess this one is wrong but I cant figure it out.. (tired?)
            array = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)];

//testoutput to textfield:
            //myName.text  = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)];
//testoutput to nslog:
            NSLog(@"Data: %@",[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)]);

        }

从 sqlitequeryn 输出最后一个:

NSLog(@"%@", array);

【问题讨论】:

    标签: iphone arrays xcode sqlite populate


    【解决方案1】:

    您的输出是什么?您对此有何期望?您直接将 NSString 放入 NSArray,对于静态 NSArray,可能会或可能不会多次完成。

    如果您打算将多个字符串放入数组中,您应该有一个 NSMutableArray 并且每次循环遍历您的 while 时只需 addObject:

    NSMutableArray *array = [[NSMutableArray alloc] init];
    ...code....
    while (sqlite3_step(statement) == SQLITE_ROW) {
        [array addObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)]];
    }
    

    【讨论】:

    • 就像一个魅力。我如何设置这个问题来回答......?它说“我可以在 2 分钟内接受分析器……”
    • 太棒了!如果您绝对必须使用它,请不要忘记处理您的 sqlite3 查询中的错误消息。我宁愿推荐Core Data 用于基本上任何适用于iPhone 的数据库应用程序。一个不错的教程是 Ray Wenderlich 的 here,他还有很多其他有用的教程 :)
    • 谢谢,我会记得处理错误信息。到目前为止,我将使用带有受控查询的静态数据库,所以我希望这不会造成麻烦。
    猜你喜欢
    • 2018-07-17
    • 2019-07-28
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    相关资源
    最近更新 更多