Не удается сохранить данные с использованием синтаксического анализатора NSXML в NSMutableArray - PullRequest
1 голос
/ 05 апреля 2011

Я хочу получать данные из веб-сервиса, используя NSXml Parser. Я могу получить данные (я вижу, что с помощью NSLog. Но я не смог сохранить данные в массиве. Это мой код.

- (void)parser:(NSXMLParser *)parser 
    didStartElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI 
 qualifiedName:(NSString *)qName 
    attributes:(NSDictionary *)attributeDict {
    if([elementName isEqual:@"entry"]) {
        NSLog(@"Found a title entry");
        getXMLFlag = YES;
    }

    if ([elementName isEqual:@"title"] && getXMLFlag) {

        NSLog(@"found title!");
        PTString = [[NSMutableString alloc]init];
    }   
}

- (void)parser:(NSXMLParser *)parser 
 didEndElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI 
 qualifiedName:(NSString *)qName 
{
    namazXmlArray= [[NSMutableArray alloc] initWithObjects:@"tab1",@"1tab1",nil];

    if ([elementName isEqual:@"title"] && getXMLFlag) {
        NSLog(@"ended title: %@",PTString);

        //      namazXmlArray= [[NSMutableArray alloc] initWithObjects:@"tab1",@"1tab1",nil];
        [namazXmlArray addObject:PTString];
        NSLog(@"I can't add this in array: %@",PTString);
        //Release and nil title String so that the next time characters are found and not within a title tag, they are ignored
        [PTString release];
        PTString = nil;
    }
    if ([elementName isEqual:@"entry"]) {
        NSLog(@"ended a namaz entry");
        getXMLFlag = NO;
    }
}

1 Ответ

0 голосов
/ 05 апреля 2011

Кажется, вы добавляете один массив в другой. Я не совсем уверен, почему, и трудно увидеть, что вы делаете без вашего полного кода. Это не дает конкретного ответа на ваш вопрос, но, поскольку вы новичок в программировании для iPhone, вы можете захотеть взглянуть на класс, который я сделал доступным для анализа XML. После этого вы сможете проанализировать файл, используя всего несколько строк кода. Вы можете получить его на GitHub здесь .

P.S Поместите весь код в скобки кода при публикации. Проще читать:)

UPDATE Когда у вас есть данные в массиве, вам нужно сделать следующее:

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


// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [array count];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
      ....
         cell.textLabel.text = [[array objectAtIndex:storyIndex] objectForKey:@"title"];

}
...