我有一个应用程序,其中UITableView由NSMutableArray填充。问题是,当我向Array添加字符串时,它不在TableView中。这是代码:
.h
<UITableViewDelegate, UITableViewDataSource>{
IBOutlet UITableView *table;
NSMutableArray *array;
}
.m
- (void)viewDidLoad{
array=[[NSMutableArray alloc] init];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [array count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
NSInteger row = [indexPath indexAtPosition:1];
cell.textLabel.text = [array objectAtIndex:row];
return cell;
}
-(void)addObjectsToTheArray{
NSString *stringA = @"something";
NSString *stringB = @"moreofsomething" ;
[array addObject:stringA];
if (![stringA isEqual: stringB]) {
stringA = @"somethingtoo"
[array addObject: stringB];
[table beginUpdates];
}
}
任何人都知道它为什么不重新加载数据?我不知道它为什么不起作用,并没有给我任何错误。
答案 0 :(得分:1)
您必须使用
[table reloadData];
重新加载表格。
答案 1 :(得分:1)
您是否在代码中的某处调用了[table reloadData];
?
您是否为dataSource
设置了delegate
和table
?
答案 2 :(得分:1)
你的数组是空的。创建阵列后调用[self addObjectsToTheArray];
:
- (void)viewDidLoad
{
array = [[NSMutableArray alloc] init];
[self addObjectsToTheArray];
}
答案 3 :(得分:0)
你试过[ table reloadData ]
吗?此外,beginUpdates
还必须与endUpdates
配对,我在此处未看到。使用一种方法或另一种方法。
答案 4 :(得分:0)
这也有点奇怪。
NSInteger row = [indexPath indexAtPosition:1];
cell.textLabel.text = [array objectAtIndex:row];
为什么不使用:
cell.textLabel.text = [array objectAtIndex:indexPath.row];
尝试将NSLog放入cellForRowAtIndexPath:
和numberOfRowsInSection:
它将为您提供有关最新情况的更多信息。