UITableview 仅打印 NSMutableArray 的第一个对象,IOS

Posted

技术标签:

【中文标题】UITableview 仅打印 NSMutableArray 的第一个对象,IOS【英文标题】:UITableview prints only first object of NSMutableArray , IOS 【发布时间】:2012-11-09 15:20:28 【问题描述】:

我有一个 NSMutableArray 和一个从 NSMutableArray 填充的分组表视图。

当我用 NSLog 打印 NSmutableArray 时,输出是 "String1","String2","String3"

但在 UITableView Cell 上我总是看到 NSMUtableArray 的第一项:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView


    // Return the number of sections.
    return [_presenterList count];


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

    // Return the number of rows in the section.
    return 1;

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

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    NSLog(@"_presenterList objectAtIndex: %@",[_presenterList objectAtIndex:indexPath.row]);

    cell.textLabel.text=[_presenterList objectAtIndex:indexPath.row];
return cell;

输出 NSlog "String1"

tableview 上的输出

String1
String1
String1

我做错了什么?

添加了编辑屏幕截图

我从字符串和 1 个 tableview 行创建了一些标题,如图中所示

【问题讨论】:

【参考方案1】:
cell.textLabel.text=[_presenterList objectAtIndex:indexPath.section];

而不是 cell.textLabel.text=[_presenterList objectAtIndex:indexPath.row];

【讨论】:

【参考方案2】:

您在numberOfRowsInSection[array count]numberOfSectionsInTableView 中返回“1”。这是倒退的(除非您真的想要数组中的每个项目都有一个部分。

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

    return [_presenterList count];


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

    return 1;

【讨论】:

如果您打算将此更新发布到tableView:numberOfRowsInSection:,您还应该将所需的更新发布到numberOfSectionsInTableView: @NSPostWhenIdle 我只需要一个等于 NSMutableArray Count 的行和节数,请参阅已编辑问题的屏幕截图,所以你的回答给了我 1 个节和行等于 NSmutablecount,这与我需要什么 @MordFustang 如果这是您真正想要采用的设计,请查看下面的答案。

以上是关于UITableview 仅打印 NSMutableArray 的第一个对象,IOS的主要内容,如果未能解决你的问题,请参考以下文章

打印屏幕外有内容的 UITableView?

无法根据来自 UIPickerView 的选择器更新 UITableView 数据

拉动刷新uitableview json解析数据

带有 UITextfield 的 UItableView 到 NSMutableArray CRASH on Record 更新单击

iOS 7 Addressbook 和 NSMutableArray 与 UITableView 获取名称和号码

NsMutable 不是 swift 中 [anyobject] 的子类型