我想知道如何在后台运行任何方法...我正在制作从互联网解析xml文件的应用程序..文件很大..所以需要20-25秒来解析它并在表格中显示查看...问题是,当我按下按钮解析文件时...按钮保持按下直到文件被解析..所以最多20秒按钮保持按下..对于thr用户看起来很奇怪..(用户认为就像应用程序挂起..)所以我的想法是显示活动指示器并在后台运行解析方法...当解析结束时停止指示器并在表视图中显示结果。实现相同的其他简单方法。 .so按钮没有按下...... ???
答案 0 :(得分:2)
查看Apple的SeismicXML示例代码,该代码使用NSOperation和NSOperationQueue在后台线程中下载和解析XML。这样,您就可以在实际应用程序的上下文中看到完整的实现。
答案 1 :(得分:0)
线程
创建新主题:
[NSThread detachNewThreadSelector:@selector(myParse) toTarget:self withObject:nil];
创建新线程调用的方法:
- (void)myParse {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
*** code that should be run in the new thread goes here ***
//sample
NSURL *url;
NSString* resourcePath = [[NSBundle mainBundle] resourcePath];
resourcePath = [resourcePath stringByAppendingPathComponent:@"sample.xml"];
url = [[NSURL fileURLWithPath:resourcePath] retain];
[self parsingTheXMLAtUrl:url];
[pool release];
}
有关详细信息,请参阅iphone sdk example。
一切顺利。