NSXMLParser无法在UICollectionView [OBJ-C]中工作

时间:2014-11-07 20:14:17

标签: objective-c uicollectionview nsxmlparser

由于某些原因,我的xml解析不会运行,日志NSLog(@"集合视图中的主题:%@",self.topic); 显示正确的值,但我的解析方法都没有运行。我在多个其他View控制器中使用过NSXMLParser,直到现在我还没有遇到任何问题。最大的区别在于,这是在UICollectionView中,我认为不会影响它,但我无法看到它可能出错的地方。 情侣笔记:

  1. 网址不是为了隐私而忽略了
  2. 方法[self runXMLParse];在viewDidLoad
  3. 我最大的问题是关于UICollectionViewController是否会阻止解析运行
  4. 除NSLog之外的所有其他日志(@"集合中的主题查看:%@",self.topic);正在运行

    -(void)runXMLParse{
    //runs the parse
    NSLog(@"topic at collection View:%@",self.topic);
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://***********/topicMembers.php?topic=%@",self.topic]];
    parser=[[NSXMLParser alloc] initWithContentsOfURL:url];
    [parser setDelegate:self];
    [parser setShouldResolveExternalEntities:NO];
    [parser parse];
    }
    -(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString             *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
    element = elementName;
    NSLog(@"parser called");
    if ([element isEqualToString:@"Members"]) {
        item    = [[NSMutableDictionary alloc] init];
        memberUpdate  = [[NSMutableString alloc] init];
        NSLog(@"Members Rec");
    }
    
    }//define variables to extract info from xml doc
    - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
    //search for tags
    NSLog(@"Step 1");
    if ([element isEqualToString:@"username"]) {
    [memberUpdate appendString:string];
    NSLog(@"Username found");
    }
    
    
    }
    
    - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString     *)namespaceURI qualifiedName:(NSString *)qName {
    NSLog(@"3");
    if ([elementName isEqualToString:@"username"]) {
    [item setObject:memberUpdate forKey:@"member"];
    [MemberList addObject:[memberUpdate copy]];//The problem lies in add objects
    NSLog(@"member update ::%@",memberUpdate);
    
    }}
    

1 个答案:

答案 0 :(得分:1)

这应该是一个解析错误。

尝试实施parserErrorOccurred:方法以了解更多信息。