2

私はまだ obj-C に慣れていませんが、テーブルビューにアイテムを追加するときに更新する必要があるテーブルビューを持つアプリを作成しています。私はそれをグーグルで検索し、使用する必要があるといういくつかの回答を見つけまし[self.tableView reloadData]たが、それは私にとってはうまくいきません。

これが私のtableViewのコードです

- (NSInteger)numberOfSectionsInTableView:(UITableView *) tableView {
     return 1; }

- (NSString *) tableView:(UITableView *) tableView titleForHeaderInSection:(NSInteger)section {
     NSString *myTitle = [[NSString alloc] initWithFormat:@"Runs"];
     return myTitle;
      }

- (NSInteger) tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger)section {

     return [entries count];
     }

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

     static NSString *CellIdentifier = @"Cell";

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier
 forIndexPath:indexPath];

     // Set up the cell...
     NSString *cellValue = [entries objectAtIndex:indexPath.row];
     cell.textLabel.text = cellValue;

     return cell; 
}

ここにテーブルにデータを入力するコードがあります

- (void)populateTable{
     AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
     NSString *username = appDelegate.username;
     entries = [[NSMutableArray alloc]init ];
     [self openDB];
     NSString *sql = [NSString stringWithFormat:@"SELECT * FROM Savings WHERE username = '%@'",username];
     sqlite3_stmt *statement;

     if(sqlite3_prepare_v2(runnerAppDB, [sql UTF8String], -1, &statement, nil)==SQLITE_OK)
     {
         while(sqlite3_step(statement)==SQLITE_ROW)
         {

             char *field1 = (char *) sqlite3_column_text(statement, 0);
             NSString *field1Str = [[NSString alloc] initWithUTF8String:field1];

             //   username - distance - speed - date - comment
             NSString *str = [[NSString alloc] initWithFormat:@"%@ %@ %@ - %@", field1Str];
             [entries addObject:str];

         }
     } }

私がすでにやろうとしたことは、データベースに何かを追加するたびに populateTable 関数を呼び出すことですが、それでも更新されません。誰か助けてください。しばらくの間、その問題に悩まされてきました。

ありがとう

4

3 に答える 3