2014-01-06 34 views
0

下面的代码从sqlite数据库结果集obj-C中生成一个字符串数组 - 数据是数字 - 但我想我需要的数组是数字数组而不是字符串数组。在sqlite结果集obj-C中构建一个数值数组

我可以使用'数组addObject'一行来使数组数值?

 //scan thru result set and add to array 
     while (sqlite3_step(statement) == SQLITE_ROW) 
     { 
      [array addObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)]]; 


     } 
+0

请问您可以发布字符串数据的格式吗?即字符串中的数字是如何分开的? –

+0

sqlite中的数据是整数。 – ianM

+0

对不起,我起初误解了你,下面的答案应该做你想做的。 –

回答

0
while (sqlite3_step(statement) == SQLITE_ROW) 
{ 
    NSString *stringValue = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)]; 

    [array addObject:@(stringValue.integerValue)]; 
} 

integerValue方法上一个NSString将返回字符串的数值作为NSInteger。 NSInteger是一种原始类型,不能插入到数组中。围绕integerValue调用的@()是将原始数字类型框入一个NSNumber对象的字面语句,该对象可以插入到数组中。

+0

我编辑了我的答案,因为我不确定是否可以在字符串数据的列上调用sqlite3_column_int()。如果这有效,我会改变我的回答。 –

+0

谢谢,先生!我也需要为浮点字段做同样的事情,所以我假设以下内容将用于实数:[array addObject:@(sqlite3_column_double(statement,0))];很有帮助。 – ianM

+0

是的,只需在字符串上调用floatValue –

相关问题