为什么NSMutableArray没有在UITableView中显示?

时间:2012-02-07 19:56:13

标签: iphone objective-c ios ipad

我有一个应用程序,其中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];
    }
}

任何人都知道它为什么不重新加载数据?我不知道它为什么不起作用,并没有给我任何错误。

5 个答案:

答案 0 :(得分:1)

您必须使用

[table reloadData];

重新加载表格。

答案 1 :(得分:1)

您是否在代码中的某处调用了[table reloadData];

您是否为dataSource设置了delegatetable

答案 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: 它将为您提供有关最新情况的更多信息。