0

UIViewcontroller クラスのデータベースから DBhelper クラスでフェッチされたデータにアクセスしたいのですが、クラスをインポートし、オブジェクト、メソッドを作成し、すべての変数は UIViewcontroller クラスでアクセスできます。メソッドがuiviewcontrollerクラスを介して呼び出されると、データベースの結果または割り当てられたメソッドが表示されますが、オブジェクトによってuiviewcontrollerでこれらの変数/配列を使用すると、nullが返されます.prpertiesを実装してそれらも合成しました..ここに私のコードがあります

-(NSMutableArray *) SaveDBInArray {

    [self createEditableCopyOfDatabaseIfNeeded];
    [self initializeDatabase];

    const char *sql = "SELECT * FROM table11";
    if (sqlite3_prepare_v2(database, sql, -1, &init_statement, NULL) != SQLITE_OK) {
        //NSAssert1(0, @"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database));   }
    while (sqlite3_step(init_statement) == SQLITE_ROW) {
          colum1= [NSString stringWithUTF8String:(char *)sqlite3_column_text(init_statement,0)];
        colum2= [NSString stringWithUTF8String:(char *)sqlite3_column_text(init_statement,1)];
        allEnteries=[[NSMutableArray alloc]init];
         [allEnteries addObject:colum1];
        [allEnteries addObject:colum2]; 
       }
    NSLog(@"array with values %@",allEnteries );
//HERE WHENEVER METHOD IS BEING CALLED IT IS DISPLAYING ONLY TOP ONE VALUE FROM EACH COLUM BUT I WANT ALL OF THEM

    sqlite3_reset(init_statement);
    [self closeDatabase];
    return allEnteries;
}
4

1 に答える 1

1

DBhelper クラスのコード...

あなたは配列を何度も初期化していますuは以下のコードを使用する必要があります

\\Initialize array here
 yourtableviewclass*yourclass= [yourtableviewclassalloc]init];
 dbH.allEnteries=[[NSMutableArray alloc]init];
 \\\\\\\ you must create property of allEnteries array in yourtableviewclassclass and 
 synhtesize it. and then try to access that array with following 2 line code in ur    tableview class
 yourtableviewclass *obj = [yourtableviewclass alloc]init ];
 nslog("%@"obj.yourtableviewclass );


 while (sqlite3_step(init_statement) == SQLITE_ROW) {
      colum1= [NSString stringWithUTF8String:(char     *)sqlite3_column_text(init_statement,0)];
    colum2= [NSString stringWithUTF8String:(char *)sqlite3_column_text(init_statement,1)];

     [yourclass.allEnteries addObject:colum1];
    [yourclass.allEnteries addObject:colum2]; 
   }

Yourtableviewclas.h コード @interface Yourtableviewclas: uiviewcontroller{ nsmutablearray *allEnteries ; } @property (nonatimic )nsmutablearray allEnteries @end

あなたのtableviewclas.mコード

synthesize allEnteries ;
-(void)viewdidload{
yourtableviewclass *obj = [yourtableviewclass alloc]init ];
 nslog("%@"obj.allEnteries );
}
于 2013-04-17T10:49:18.937 に答える