1

tableView からデータをリロードしようとしています。それ自身のボイドから呼び出すと、機能せず、何も起こりません。ただし、見回すと、セルを削除すると機能します。私はそれが私のINITと関係があると考えています。それを解決するのを手伝ってもらえますか? ありがとう。

以下は私のコードです!

- (id) init {

//NSLog(@"%@", theUserID);
// Set up database connection
NSString *myDBTwo = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"flashpics.db"];
databaseTwo = [[Sqlite alloc] init];
[databaseTwo open:myDBTwo];

//Initialize the array.
listOfItems = [[NSMutableArray alloc] init];

[listOfItems addObject:@"hi!"];

// Add to array to display in the tableView
NSArray *listOfItemsTwo = [databaseTwo executeQuery:@"SELECT * FROM albums"];   
for (NSDictionary *rowone in listOfItemsTwo) {
    NSString *getName = [rowone valueForKey:@"name"];
    if (getName != NULL) {
        [listOfItems addObject:getName];
        [getName release];
    }
}

//[database release];

return self;
}

これが私のボイドです:

- (void)refreshTableView {
[(UITableView *)self.view reloadData];
//[self.tableView reloadData];
}

前もって感謝します。

4

1 に答える 1

2

を過剰にリリースgetNameしているため、これがクラッシュすると予想されます。しかし、-refreshTableViewが呼び出されたときに何も起こらない場合、それは であると予想されself.viewますnil。次のことを確認する必要があります。

  • refreshTableView実際に呼ばれる
  • self.viewnil使用する段階ではない
  • tableView:cellForRowAtIndexPath:が呼び出され、要求されたときに適切に構成されたセルを返します
于 2011-03-08T02:46:09.640 に答える