0

我尝试从 web 服务加载一个数组并在 tableview 上显示,但我有一个问题。

我不想在 tableview 上显示重复的字段。

我只想在表格上显示一个字段。

我现在有 :

1234

1235

1234

6544

2234

6544

例如 1234 和 6544 有重复

加载数组代码:

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes: (NSDictionary *)attributeDict
{
    if ( [elementName isEqualToString:@"BranchID"] )
    {
        teveRetorno = YES;
    }
    else if ( [elementName isEqualToString:@"GetBranchResult"] )
    {
        myArray = [[NSMutableArray alloc] init];
    }
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    if (teveRetorno)
    {
        [myArray addObject:string];
    }
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    if ( [elementName isEqualToString:@"BranchID"] )
    {
        [[self tableView]reloadData];
    }

    teveRetorno = NO;
}

表代码:

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [self.myArray 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];
    }

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

    cell.textLabel.adjustsFontSizeToFitWidth = YES;

    [cell setAccessoryType: UITableViewCellAccessoryDisclosureIndicator];

    return cell;
}
4

3 回答 3

4

从您用于填充表格的数组中删除重复项。这可以通过以下方式完成:

NSOrderedSet *distinctItems = [NSOrderedSet orderedSetWithArray:self.myArray];
self.myArray = [distinctItems array];

在从数据加载中填充之后myArray并在重新加载表视图之前执行此操作。

于 2013-06-19T12:31:25.587 回答
1

这与 tableView 无关。你可能想使用这样的东西

if(![array containsObject:Value])
 {
    //add object to array.
}

如果条件为真,则仅添加值,否则不添加。

于 2013-06-19T12:29:39.507 回答
0

处理您的数据源数组。删除重复的条目。然后通过加载数据reloadData

于 2013-06-19T12:29:07.737 回答