如何在tableView中重新分析xml数据?

时间:2012-02-12 17:53:32

标签: ios xcode xml-parsing tableview

我有一个tableView,用户可以在其中添加联系人。这些联系人将保存到mysql数据库,然后返回给用户。事实是,他必须手动更新它才能获得更新的xml。但是当我添加一个联系人时我想这样做,所以它会立即显示出来。我尝试了各种各样的东西,总是遇到错误,或者他在tableview中多次解析数据库。我想删除所有联系人并再次粘贴所有联系人然后更新它,但这也没有真正起作用。 我现在就是这样做的:

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 个答案:

答案 0 :(得分:1)

您是否尝试过在UITableView上调用[reloadData][1]

如果没有回答,你能解释一下第二次解析xml时会发生什么吗?

答案 1 :(得分:1)

解决方案显而易见,我仍然浪费了太多时间。 这是解决方案:

刚刚放

[self doXMLParsing];

在您向数据库添加联系人时的结尾。