【问题标题】:Send information about checked table view items to server将有关已检查表视图项的信息发送到服务器
【发布时间】:2011-07-01 19:57:55
【问题描述】:

我正在构建一个 iPhone 应用程序,其中有一个表格视图,其中包含可以打开或关闭的项目。当用户检查了选定的项目时,我必须将该信息发送回我的服务器。但是,我不知道执行此操作的最佳方法。我应该将信息加载到数组中吗?也许是字典?你能给出具体的例子来说明如何用代码做到这一点吗?

谢谢。

没人吗?

更新

需要明确的是,有关 URL 连接的所有内容都已处理完毕。我所需要的只是一种对数组等中的信息进行排序的方法,其中项目的索引路径用于表示已检查的表格视图单元格。之后,我会将信息转换为 JSON,然后在服务器上对其进行解析。我有一个 JSON 编码/解码库,所以我不需要任何关于如何做到这一点的信息。

【问题讨论】:

  • 大约要转移多少个项目?您会为每个项目发送一个 int 还是为每个项目发送一整套字段?它是什么样的服务器?服务器端是否需要 JSON、XML 等?设备上使用什么数据结构并不重要。在找到“最佳”方式之前,您是否能够使用 NSURLConnection 或某些第三方库完全传输到服务器?
  • 用更多信息更新了我的帖子。
  • 我认为,如果您要跟踪选定索引路径的列表,最简单的方法是拥有一个包含 NSIndexPath 对象的 NSMutableArray。但是服务器如何知道“第 1 行,第 3 行”与什么相关?也许您应该发送与您在表格视图中显示的模型对象相关的唯一标识符(而不是它们碰巧显示的部分+行)。

标签: arrays ios uitableview checked


【解决方案1】:

好的,这似乎解决了我的问题。如果有人知道更优雅的解决方案,请告诉我。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    if ([self.tableView cellForRowAtIndexPath:indexPath].accessoryType == UITableViewCellAccessoryCheckmark) {

        [self.tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryNone;
        [self.tableView cellForRowAtIndexPath:indexPath].textLabel.textColor = [UIColor colorWithRed:0.0 / 255 green:0.0 / 255 blue:0.0 / 255 alpha:1];
        [selectedSources removeObject:[NSNumber numberWithInt:indexPath.row]];

    } else {

        [self.tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark;
        [self.tableView cellForRowAtIndexPath:indexPath].textLabel.textColor = [UIColor colorWithRed:72.0 / 255 green:104.0 / 255 blue:152.0 / 255 alpha:1];
        [selectedSources addObject:[NSNumber numberWithInt:indexPath.row]];

    }

    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];

}

selectedSources 是一个 NSMutableArray,然后我对其进行 JSON 编码并发送到我的服务器。根据索引路径,我可以识别哪些表格视图单元格已被选中/未选中服务器端。

谢谢,安娜!

【讨论】:

  • 如果这工作没有任何问题(它足够快并且正确的行#s被发送)然后好的,但不是直接从/向单元读取/写入,我只会读/写在此方法中使用 selectedSources 数组,然后在最后调用 reloadRowsAtIndexPath (在 cellForRowAtIndexPath 中,它检查 selectedSources 并适当地设置附件类型等)。
猜你喜欢
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-06
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-19
相关资源
最近更新 更多