iphone-在tableview中存储id/值对
我有一个php文件,它返回带有id/值对的XML。 解析XML时,我创建了一个对象数组,每个对象都有一个id和一个值。 我现在要做的是将XML中的值添加到单元格文本中。还希望存储相应的ID,以便我可以在didSelectRowAtIndexPath方法中使用它。 我对iPhone非常陌生,所以这可能是显而易见的,对不起:) 当前我的CellForRowatineXpath方法如下所示:iphone-在tableview中存储id/值对,iphone,objective-c,Iphone,Objective C,我有一个php文件,它返回带有id/值对的XML。 解析XML时,我创建了一个对象数组,每个对象都有一个id和一个值。 我现在要做的是将XML中的值添加到单元格文本中。还希望存储相应的ID,以便我可以在didSelectRowAtIndexPath方法中使用它。 我对iPhone非常陌生,所以这可能是显而易见的,对不起:) 当前我的CellForRowatineXpath方法如下所示: - (UITableViewCell *)tableView:(UITableView *)tableVie
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if(cell == nil)
{
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
}
int categoryIndex = [indexPath indexAtPosition: [indexPath length] -1];
cell.textLabel.text = [[categories objectAtIndex: categoryIndex] objectForKey: @"CategoryName"];
cell.accessoryType = UITableViewCellSelectionStyleBlue;
return cell;
}
类别对象的定义如下:
category = [[NSMutableDictionary alloc] init];
[category setObject:currentID forKey:@"CategoryId"];
[category setObject:currentName forKey:@"CategoryName"];
无需将实际ID添加到单元格中 如果将数组中的对象映射到UITableView 1:1,并且表中只有一个组,则只需使用IndexPath的行作为NSArray的索引,即可检索正确的条目 表的第一个单元格将有
行=>0
,数组中与其对应的对象也将有0
索引
如果您有几个组,那么我假设您的数组将包含几个子数组来表示这一点。在这种情况下,使用IndexPath的group部分跳转到正确的数组,使用row部分跳转到正确的条目
备选方案:
如果出于某种原因必须在实际单元格中包含ID,则subcassUITableViewCell
并向其界面添加单个NSNumbercellID
确保将其保留在属性声明中并进行合成
然后,在CellForRowatineXpath()中,添加
通过这种方式,您可以稍后从
didSelectRowAtIndexPath
中的实际单元格中检索单元格ID
,而无需将实际ID添加到单元格中
如果将数组中的对象映射到UITableView 1:1,并且表中只有一个组,则只需使用IndexPath的行作为NSArray的索引,即可检索正确的条目
表的第一个单元格将有行=>0
,数组中与其对应的对象也将有0
索引
如果您有几个组,那么我假设您的数组将包含几个子数组来表示这一点。在这种情况下,使用IndexPath的group部分跳转到正确的数组,使用row部分跳转到正确的条目
备选方案:
如果出于某种原因必须在实际单元格中包含ID,则subcassUITableViewCell
并向其界面添加单个NSNumbercellID
确保将其保留在属性声明中并进行合成
然后,在CellForRowatineXpath()中,添加
通过这种方式,您可以稍后从
didSelectRowAtIndexPath
中的实际单元格中检索cellID
int categoryIndex = [indexPath indexAtPosition: [indexPath length] -1];
NSString *id = [[categories objectAtIndex:categoryIndex] objectForKey: @"CategoryId"];
在didSelect方法中使用此选项
int categoryIndex = [indexPath indexAtPosition: [indexPath length] -1];
NSString *id = [[categories objectAtIndex:categoryIndex] objectForKey: @"CategoryId"];
非常感谢。我实际上会选择子类化。谢谢!我实际上会选择子类化。