Ios6 在ios的NSMutableArray中添加存储在NSString中的值

Ios6 在ios的NSMutableArray中添加存储在NSString中的值,ios6,Ios6,我正在发布我尝试过的代码。我正在获取字符串值,但是当将nsstring的所有值添加到nsmutablearray并打印它时,我得到空值 //ViewController.h @interface ViewController : UIViewController{ NSString *stringValueVideoiD; NSMutableArray *TableVideoIDArray; } //ViewController.m @implementation View

我正在发布我尝试过的代码。我正在获取字符串值,但是当将nsstring的所有值添加到nsmutablearray并打印它时,我得到空值

//ViewController.h
@interface ViewController : UIViewController{
     NSString *stringValueVideoiD;
     NSMutableArray *TableVideoIDArray;
}

//ViewController.m
@implementation ViewController

- (void)viewDidLoad
{
   TableVideoIDArray=[[NSMutableArray alloc]init];
}

-(void) getAllRows{

 if(sqlite3_open([databasePath UTF8String], &db) == SQLITE_OK)
    {
       NSString *sqlStatement = [NSString stringWithFormat:@"SELECT * FROM table"];

        sqlite3_stmt *compiledStatement;

        if(sqlite3_prepare_v2(db,[sqlStatement UTF8String] , -1, &compiledStatement, NULL)== SQLITE_OK)
        {
         while(sqlite3_step(compiledStatement)==SQLITE_ROW)
            {
             char *videoId = (char *) sqlite3_column_text(compiledStatement, 1);
                stringValueVideoiD = [[NSString alloc] initWithUTF8String:videoId];
                [TableVideoIDArray addObject:stringValueVideoiD];
               NSLog(@"vids id:%@",TableVideoIDArray);
           //vids id:(null) is printed
}
}
}
}

检查stringValueVideoiD是否具有某些值。尝试在添加对象之前打印它。检查sql语句是否返回任何值。

TableVideoIDArray
nil
,这就是打印
vids id:(null)
的原因。从您发布的代码中不清楚为什么是
nil
。两种主要的可能性是:(1)在调用
-viewDidLoad
之前调用
-getAllRows
,(2)在调用
-viewDidLoad
之后的某个时间,但在调用
-getAllRows
之前,将
TableVideoIDArray
设置为
nil
。如果将
TableVideoIDArray
设置为属性(现在它只是一个ivar),则可以在
-[ViewController setTableVideoIDArray:]上设置符号断点
以确定何时设置。您确定stringValueVideoiD打印值吗?是的,wesley我正在打印stringValueVideoiD 2013-09-17 19:09:38.033 APPName[482:11303]vids id:bVkMdSFBNcE 2013-09-17 19:09:38.034 APPName[482:11303]vids id:5TzM_y40l8c 2013-09-17 19:09:38.034 APPName[482:11303]视频id:UBl9taUKj9UI正在打印stringValueVideoiD。我已经在上面发布了我的控制台结果。我在上面的代码中看到您正在打印TableVideoID阵列。在代码中添加断点,然后查看将stringValueVideoiD添加到TableVideoIDArray后的数组计数。仅用于测试,请向TableVideoIDArray添加一些硬编码值。[TableVideoIDArray添加对象:@“测试”];查看是否在数组中添加测试值并打印它。如果为true,则字符串stringValueVideoiD中存在问题;NSLog(@“vids id:%lu”,(无符号长)[TableVideoIDArray计数]);而且我正在计算数组的0。真奇怪!!!尝试在getAllRows方法中分配数组。并像NSLog一样打印它(@“vids id:%d”,[TableVideoIDArray count]);