0

我正在使用 xCode 4.3.2。在这个项目中,我已经读取了 xml 数据并将其放在 uiTableView 中,但在这里我只想列出输出数据(超过 '4000')的价格。我该如何为此设定条件?请你帮助我好吗?

我的 XML:

<oembed>
<Company><name>ABC</name><price>2000</price></Company>
<Company><name>JP</name><price>4000</price></Company>
<Company><name>VB</name><price>5000</price></Company>
</oembed>

视图控制器.m

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName 
    attributes:(NSDictionary *)attributeDict 
{

    if([elementName isEqualToString:@"oembed"]) 
    {
        books = [[NSMutableArray alloc] init];
    }
    else if([elementName isEqualToString:@"Company"]) 
    {
        aBook = [[Book alloc] init];
    }
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 

    if(!currentElementValue) 
        currentElementValue = [[NSMutableString alloc] initWithString:string];
    else
        [currentElementValue appendString:string];

}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {

    if([elementName isEqualToString:@"oembed"])
        return;

    if([elementName isEqualToString:@"Company"]) {

        [books addObject:aBook];

        [aBook release];
        aBook = nil;
    }
    else 
        [aBook setValue:currentElementValue forKey:elementName];

    [currentElementValue release];
    currentElementValue = nil;
}

请帮我。

4

1 回答 1

1

Try filtering your books array before displaying the data in the table.

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.price >= 4000"];
NSArray *filtered = [books filteredArrayUsingPredicate:predicate];

Note that this code assumes you're using some sort of a dictionary or a custom object which has a property named price.

于 2012-04-18T12:03:18.750 回答