我有一个 iPhone 应用程序,我在其中显示一个从 RSS 提要加载的表格视图。加载视图后,我调用此方法在新的 NSThread 中运行:
- (void)start:(NSURL*)url {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSXMLParser *XMLParser = [[[NSXMLParser alloc] initWithContentsOfURL:url] autorelease];
[XMLParser setDelegate:self];
if (items) {
[items release];
}
items = [[NSMutableArray alloc] init];
[self startParsing:XMLParser];
[pool drain];
}
它工作正常,但是如果用户在下载或解析 xml 时离开视图,我希望线程停止运行,但是如何在不泄漏内存的情况下阻止它运行?此外,如果它正在运行 -initWithContentsOfURL: 方法,而我希望它停止,我将如何停止该方法?