我正在制作一个使用UITableView
and的应用程序UITableViewController
。但是,当我调用[self.tableView reloadData];
时UITableViewController
,没有任何反应, (tableView: cellForRowAtIndexPath:
不调用)。我应该怎么办?
- (void) UserChangedAmmountAndCurrency: (NSNotification*) notification {
self.localBank.activeAmmount=((NSNumber*)[notification.userInfo objectForKey:@"newAmmount"]).doubleValue;
self.localBank.activeCurrency=[self.localBank.worldBank requestCurrencyForLocalBank:((NSString*)[notification.userInfo objectForKey:@"newISO4217Currency"])];
[self.tableView reloadData];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSNumber *ammount= [self.localBank ammountForElementAtIndex:indexPath.row];
VIPCurrency* currency=[self.localBank currencyForElementAtIndex:indexPath.row];
static NSString *CellIdentifier = @"cellWithCurrencyAndAmmount";
VIPConversionCell* cell=[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.longCurencyIdentifier.text=currency.longName;
cell.shortCurrencyIdentifier.text=currency.shortName;
cell.textfieldForAmmount.text=ammount.stringValue;
return cell;
}
编辑:我做了一些额外的测试。我测试过tableview数据源和delegate是我用来调用reload方法的viewcontroller,没问题。我还注意到其他一些奇怪的事情。调用 reloadData 时,既不调用numberOfSectionsInTableView:
也不numberOfRowsInSection:
调用。我觉得在调用 reloadData 之前我没有做一件基本的事情,但我不知道是什么。难道是我必须以某种方式专门将单元格设置为过时的?
编辑:我还检查了该方法是否在主线程中被调用,这也可以