RSSフィードからロードされたテーブルビューを表示しているiPhoneアプリがあります。ビューが読み込まれたら、このメソッドを呼び出して新しい 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: メソッドを実行している場合、そのメソッドを停止するにはどうすればよいですか?