dispatch_async xml 解析器不工作
dispatch_async with xml parser Not Working
我正在使用 dispatch_async 在一个合适的视图中解析 xml 数据,这是我的代码:
- (void) Parse{
dispatch_async( dispatch_get_global_queue(0, 0), ^{
NSString *post =[[NSString alloc] initWithFormat:@"http://messages.xml"];
NSData *xmlData=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:post]];
xmlParserObject =[[NSXMLParser alloc]initWithData:xmlData];
[xmlParserObject setDelegate:self];
dispatch_async( dispatch_get_main_queue(), ^{
[xmlParserObject parse];
});
});
[messageList reloadData];
}
现在 uitableview 不显示其中的任何数据。它在 dispatch_async
之前运行良好
我认为你的代码有问题。请在 dispatch_get_main_queue()
中重新加载 table 数据
- (void) Parse {
dispatch_async( dispatch_get_global_queue(0, 0), ^{
NSString *post =[[NSString alloc] initWithFormat:@"http://messages.xml"];
NSData *xmlData=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:post]];
xmlParserObject =[[NSXMLParser alloc]initWithData:xmlData];
[xmlParserObject setDelegate:self];
[xmlParserObject parse];
dispatch_async( dispatch_get_main_queue(), ^{
[messageList reloadData];
});
});
}
我正在使用 dispatch_async 在一个合适的视图中解析 xml 数据,这是我的代码:
- (void) Parse{
dispatch_async( dispatch_get_global_queue(0, 0), ^{
NSString *post =[[NSString alloc] initWithFormat:@"http://messages.xml"];
NSData *xmlData=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:post]];
xmlParserObject =[[NSXMLParser alloc]initWithData:xmlData];
[xmlParserObject setDelegate:self];
dispatch_async( dispatch_get_main_queue(), ^{
[xmlParserObject parse];
});
});
[messageList reloadData];
}
现在 uitableview 不显示其中的任何数据。它在 dispatch_async
之前运行良好我认为你的代码有问题。请在 dispatch_get_main_queue()
- (void) Parse {
dispatch_async( dispatch_get_global_queue(0, 0), ^{
NSString *post =[[NSString alloc] initWithFormat:@"http://messages.xml"];
NSData *xmlData=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:post]];
xmlParserObject =[[NSXMLParser alloc]initWithData:xmlData];
[xmlParserObject setDelegate:self];
[xmlParserObject parse];
dispatch_async( dispatch_get_main_queue(), ^{
[messageList reloadData];
});
});
}