Как обработать данные XML в tableView? - PullRequest
0 голосов
/ 12 февраля 2012

У меня есть tableView, куда пользователь может добавлять контакты.Эти контакты сохраняются в базе данных mysql, а затем возвращаются пользователю.Дело в том, что он должен обновить его вручную, чтобы получить обновленный XML.Но я хочу сделать это, когда он добавляет контакт, чтобы он сразу показывался.Я пробовал разные вещи и всегда получал либо ошибку, либо он анализировал базу данных более одного раза в виде таблицы.Я думал об удалении всех контактов и вставке их снова, а затем обновлял их, но это тоже не сработало.Вот как я это делаю на данный момент:

To parse the XML:

- (void) doXMLParsing 
{
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"Key22"] == nil) {

} else {
self.filteredListContent = [NSMutableArray arrayWithCapacity:[self.tabelle count]];

self.tableView.scrollEnabled = YES;

tabelle = [[NSMutableArray alloc] init];

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
NSString *fileName = [prefs stringForKey:@"Key22"];
NSString *urlString = [NSString stringWithFormat: @"http://www.---.com/%@.xml", fileName];
NSURL *url = [NSURL URLWithString: urlString];

DataFileToObjectParser *myParser = [[DataFileToObjectParser alloc] parseXMLAtUrl:url toObject:@"Telefonbuch" parseError:nil];

for(int i = 0; i < [[myParser items] count]; i++) {
    Telefonbuch *new = [[Telefonbuch alloc] init];
    new = (Telefonbuch *) [[myParser items] objectAtIndex:i];
    [tabelle addObject:new];
    [self.tableView reloadData];
}
[XMLActivity stopAnimating];
}
}

В viewDidLoad:

XMLActivity = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(140.0f, 290.0f, 40.0f, 40.0f)];
[XMLActivity setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];

[self.view addSubview:XMLActivity];

[XMLActivity startAnimating];

[self performSelector:@selector(doXMLParsing)
           withObject:nil
           afterDelay:0];
return;
tabelle = [[NSMutableArray alloc] init];

Сейчас все отлично работает.Я просто хочу повторно проанализировать XML после добавления нового контакта, чтобы он сразу отображался.

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Решение было столь же очевидным, как и простое, и я все еще тратил слишком много времени на это. Вот решение:

Просто поставь

[self doXMLParsing];

в конце, когда вы добавили контакт в базу данных.

1 голос
/ 12 февраля 2012

Вы пытались позвонить [reloadData][1] на свой UITableView?

Если это не ответит, не могли бы вы объяснить, что именно происходит, когда вы анализируете xml второй раз?

...