json数据填充和多选以获取ID

时间:2016-11-16 07:04:54

标签: ios objective-c json uitableview

我必须发布JSON并在响应中获取用户ID和更多内容。我已将其添加到数组并填充我的tableview。像这样。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ModelClass * model = __arrayForContacts[indexPath.row];

  MYcustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
}

现在,我已经对我的tableview应用了多选。我想从多选行获取用户ID。我希望它在下一个JSON解析中作为请求发布。如何实现这一点,任何帮助都将是感谢。

2 个答案:

答案 0 :(得分:0)

在tableview的didselect方法中,您需要设置如下

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

    yourobjectClass *objCookBook = [arrCookBook objectAtIndex:indexPath.row];
    objCookBook.isSelected = !objCookBook.isSelected;
    //[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
    //[tableView deselectRowAtIndexPath:indexPath animated:YES];// uncomment above line if you want to reload table
}

你可以得到如下:

// isSelected是您选择的标志

     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"isSelected == 1"];
      NSArray *arrSelected = [arrCookBook filteredArrayUsingPredicate:predicate];
     if (arrSelected.count > 0) {
       NSlog(@"%@",[arrSelected valueForKey:@"userId"]); // replace your id name and post it to json 

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:[arrSelected valueForKey:@"userId"] options:NSJSONWritingPrettyPrinted error:nil];
    NSString *JsonString = [[NSString alloc] initWithData:jsonData2 encoding:NSUTF8StringEncoding];
    }

答案 1 :(得分:0)

如果你想应用自定义多选择,那么试试这个,它永远不会失败。 按照步骤: -

  1. 在每个&中添加新值每个使用循环的数组字典 当你得到回应。像那样
  2.   

    表示0中的j ..< arrList.count {       让dictList = arrList.objectAtIndex(j)为!的NSMutableDictionary       dictList.setObject(“0”,forKey:“val”)        arrList.replaceObjectAtIndex(j,withObject:dictList)       }       tblView.reloadData

    1. cellForRowAtIndexPath
    2. 中应用条件
        

      让dictList = arrList.objectAtIndex(indexPath.row)为!       NSMutableDictionary让val = dictList.objectForKey(“attribute_option_list”)为!串       如果val ==“0”{       “取消选中”       }其他{       “校验”       }

      1. 还在 didSelectRowAtIndexPath 中应用条件,并在特定索引字典中使用val键的更改值
      2.   

        让dictList = arrList.objectAtIndex(indexPath.row)为!           的NSMutableDictionary       让val = dictList.objectForKey(“attribute_option_list”)为!串           如果val ==“0”{           dictList.setObject(“1”,forKey:“val”)           }其他{           dictList.setObject(“0”,forKey:“val”)           }       arrList.replaceObjectAtIndex(indexPath.row,withObject:dictList)       tblView.reloadData()

        不要忘记重装表&使用适当的条件,检查取消选中&密钥值

        您还可以在json formate

        中将所选数据返回给服务器