gpt4 book ai didi

iphone - 下载时停止 NSThread

转载 作者:行者123 更新时间:2023-12-03 17:32:58 29 4
gpt4 key购买 nike

我有一个 iPhone 应用程序,在其中显示一个从 RSS 提要加载的表格 View 。当 View 加载时,我调用此方法在新的 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 时离开 View ,我希望线程停止运行,但如何在不泄漏内存的情况下停止它运行?另外,如果它正在运行 -initWithContentsOfURL: 方法,而我希望它停止,我该如何停止该方法?

最佳答案

如果您预计需要控制连接(即,如果用户取消或导航离开则停止连接),您可能应该使用异步 NSURLConnection在解析 XML 之前加载数据的 API。除了使您能够根据需要关闭连接之外,您还能够更好地响应网络错误。

正如 NSD 所指出的,您可能应该实现某种 cancel驱动 XML 解析线程的类上的方法 - 然后只需使用 performSelector:onThread:withObject:waitUntilDone:当用户取消下载或导航离开时,从您的主线程(或类似的)。

关于iphone - 下载时停止 NSThread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1950347/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com