1
在我的iPhone應用程序中,我有一個NSXMLParser實例,它被設置爲一個自定義委託來讀取XML。然後將它移動到它自己的線程中,以便它可以更新後臺中的數據。然而,自從我這樣做以來,它在控制檯中給了我很多_NSAutoreleaseNoPool警告。我試圖添加一個NSAutoreleasePool到我的每個委託類,但是,這似乎沒有解決問題。如果發生故障,我已經包含了創建NSXMLParser的方法。停止導致NSXMLParser實例_NSAutoreleaseNoPool
NSURL *url = [[NSURL alloc] initWithString:@"http://www.mywebsite.com/xmlsource.xml"];
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];
CustomXMLParser *parser = [[CustomXMLParser alloc] init];
parser.managedObjectContext = self.managedObjectContext;
parser = [parser initXMLParser];
[xmlParser setDelegate:parser];
[NSThread detachNewThreadSelector:@selector(parse) toTarget:xmlParser withObject:nil];
如果任何人有任何想法,以擺脫這個問題,我真的很感激它。
謝謝。
這是最好的@try {...} {@finally [池釋放]包一切; }如果你得到一些破壞線程的異常。當然,例外情況可能會中止您的應用,但仍然可以。 – 2010-05-22 20:20:47
感謝Mike,好點 – Vladimir 2010-05-22 20:24:34
感謝您的回覆Vladimir!但是,我在NSXMLParser上調用解析 - 我是否需要重寫這個地方? – PF1 2010-05-22 23:17:53