当我从detailview返回时,Imagesarray加倍

时间:2015-06-01 11:19:49

标签: ios objective-c xml

I parse xml images urls from tableview to detailview when xml format is like 

so I wrote like this

在下面的代码中有一些内容,所以我写了这样的代码。

这是另一种类型的标签,因此编写了像

这样的代码
if ([elementObj isEqualToString:@"media:thumbnail"]) {

            [Imagesarray addObject:attributeDict[@"url"]];
}

在findcharactor中我不使用这个,因为我在这里得到了数组

[Imagesarray addObject:attributeDict[@"url"]];

当我没有在didendelement方法中使用它时,因为它没有attributesstring

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

    if ([elementObj isEqualToString:@"media:thumbnail"]) {

        [Imagesarray addObject:attributeDict[@"url"]];



        NSLog(@"%@ it is images array",Imagesarray);
    }

    if ([elementObj isEqualToString:@"item"]) {

        _item    = [[NSMutableDictionary alloc] init];
        titleObj   = [[NSMutableString alloc] init];
        pubdataObj= [[NSMutableString alloc] init];
        DiscriptionObj=[[NSMutableString alloc]init];
        }
   }

当我点击详细视图的后退按钮时,所有图像都会再次添加到数组中。如何为此编写代码。     请帮帮我。

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

    {

        if ([elementObj isEqualToString:@"title"]) {
            [titleObj appendString:string];
        }
        else if ([elementObj isEqualToString:@"pubDate"]) {
            [pubdataObj appendString:string];
        }
        else if ([elementObj isEqualToString:@"description"]){
            [DiscriptionObj appendString:string];

    -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
    {
        if ([elementName isEqualToString:@"item"]) {

            [_item setObject:titleObj forKey:@"title"];
            [_item setObject:pubdataObj forKey:@"pubDate"];
             [_item setObject:DiscriptionObj forKey:@"description"];
            [feedsArry addObject:_item];
           [];   
        }
   }

1 个答案:

答案 0 :(得分:1)

尝试检查您是从viewdidappear还是viewwillappear方法解析数组。如果是,则只要打开视图,就会调用此方法。将解析移动到viewdidload会更好,只有在加载视图时才会调用它。