2012-04-18 32 views
0

我正在使用xCode 4.3.2。在這個項目中,我已經讀取了xml數據並將它放在uiTableView中,但是這裏我只想列出輸出數據(超過'4000')的價格。 我該如何設定條件? 你能幫我嗎?xcode - 爲UITableView過濾xml數據

我的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> 

ViewController.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; 
} 

請幫助我。

+0

創建單元格時檢查此情況。 – 2012-04-18 12:00:32

回答

1

在顯示錶格中的數據之前,嘗試過濾您的books數組。

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

請注意,此代碼假定你正在使用某種形式的字典的或具有一個名爲price屬性自定義對象。