У меня есть приложение для 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: метод, в то время как я хочу остановить его, как бы я остановил этот метод?