如何在NSString中存储已检查行的值

时间:2012-01-13 07:02:18

标签: objective-c xcode

我有一个由json webservice url填充的表视图。我使用“UITableViewCellAccessoryCheckmark”作为刻度线。当用户多选择tableview时,我希望所有选中的行数据都存储在一个变量中。你能不能帮帮我。下面是代码。

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


static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];

}

if ([self.arForIPs containsObject:indexPath]) {
    [cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
else {
    [cell setAccessoryType:UITableViewCellAccessoryNone];
}


NSString *imagefile1 = [media1 objectAtIndex:indexPath.row]; 


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

cell.detailTextLabel.text=[descriptiondesc objectAtIndex:indexPath.row];

cell.detailTextLabel.numberOfLines=2;
//cell.detailTextLabel.backgroundColor=[UIColor clearColor];

img=[UIImage imageNamed:@"icon.png"];
cell.imageView.image=img;

NSLog(@"BOOMMMM:%@",pileup);
return cell;
 }

enter image description here

1 个答案:

答案 0 :(得分:3)

如果您启用了多选,则应该能够使用UITableView的indexPathsForSelectedRows来获取所选行的所有索引。有了这个,您可以返回从服务器下载的原始数据,并获得所需的字符串。

您可以在tableView:didSelectRowAtIndexPath:内使用它来构建所有当前所选行的字符串。

编辑: 要将几个关联数据存储在一起,您可以使用NSDictionary(或NSMutableDictionary,如果您需要在创建后编辑它)。 例如,对于您的代码,要存储一行的所有数据:

NSMutableDictionary * dict = [[NSMutableDictionary alloc] initWithCapacity:3];
[dict setObject:[media1 objectAtIndex:indexPath.row] forKey:@"image"];
[dict setObject:[story objectAtIndex:indexPath.row] forKey:@"story"];
[dict setObject:[descriptiondesc objectAtIndex:indexPath.row] forKey:@"desc"];

或者您可以将其直接创建为常规NSDictionary,请参阅此处:http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsdictionary_Class/Reference/Reference.html