如何加载带有字典数组的tableView?

发布于 2024-11-10 01:51:47 字数 1164 浏览 1 评论 0原文

我想加载一个带有数组的表视图,该数组本身有多个字典。这些字典中的每一个都有我需要放入一行的项目,每行一个字典。所有这些字典都存储在一个数组中。

我应该如何执行这个任务?

谢谢,

请参阅下面的代码,项目是我的数组。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
   // id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
    return self.projects.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];
    }

    // Configure the cell.
    [self configureCell:cell atIndexPath:indexPath];

    return cell;
}

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath {

    cell.textLabel.text = [self.projects objectAtIndex:indexPath.row];
}

I want to load a table view with an array which itself has multiple dictionaries. Each of these dictionaries has items which I need to put into a row, one dictionary per row. All of these dictionaries are stored in an array.

How should I perform this task?

Thanks,

See the code below, projects is my array.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
   // id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
    return self.projects.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];
    }

    // Configure the cell.
    [self configureCell:cell atIndexPath:indexPath];

    return cell;
}

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath {

    cell.textLabel.text = [self.projects objectAtIndex:indexPath.row];
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

想你只要分分秒秒 2024-11-17 01:51:47

你几乎可以用你拥有的一切来做到这一点。您只需将 configureCell:atIndexPath: 方法更改为如下所示:

cell.textLabel.text = [[self.projects objectAtIndex:indexPath.row] objectForKey:@"some_key"];

只需将 some_key 更改为 NSDictionary 中的键即可您想要在 UITableViewCell 中显示。

您还可以将 UITableViewCell 样式更改为 UITableViewCellStyleSubtitle,然后您可以将 NSDictionary 中的另一个键添加到 cell.detailTextLabel >。

You can do this with pretty much what you have. You'll just need to change your configureCell:atIndexPath: method to look something like this:

cell.textLabel.text = [[self.projects objectAtIndex:indexPath.row] objectForKey:@"some_key"];

Just change some_key to the key in your NSDictionary that you want to display in your UITableViewCell.

You can also change your UITableViewCell style to UITableViewCellStyleSubtitle and then you can add another key from your NSDictionary to cell.detailTextLabel.

我纯我任性 2024-11-17 01:51:47

除了 edc1591 之外,

如果数组中的字典有不同的键,那么

  if([[self.projects objectAtIndex:indexPath.row] count]==1)

   {
     id key= [[[self.projects objectAtIndex:indexPath.row] allKeys] objectAtIndex:0];
     cell.textLabel.text = [[self.projects objectAtIndex:indexPath.row] objectForKey:key];
   }

In addition to edc1591,

In case if the dictionaries in the array have different keys then

  if([[self.projects objectAtIndex:indexPath.row] count]==1)

   {
     id key= [[[self.projects objectAtIndex:indexPath.row] allKeys] objectAtIndex:0];
     cell.textLabel.text = [[self.projects objectAtIndex:indexPath.row] objectForKey:key];
   }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文