2009-12-03 34 views
2

最近幾個小時,我一直生活在儀器上,盯着一個令人費解的內存泄漏。我已經將它隔離到NSOperation子類中的這一行代碼中,我寫道:initWithContentsOfURL泄漏NSOperation子類中的內存。任何人看到這個?

NSData *myData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:myURLString]]; 

定期地這會泄漏3500字節。有沒有人看到這個?如果是這樣,是否有解決方法?

在此先感謝。

UPDATE:

這裏是我的代碼子類的NSOperation的main()的主體中的相關章節:

- (void)main { 

// ... 

NSData *sequenceData = 
[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:concatenatedURLString]]; 

NSString *sequenceString = 
[[NSString alloc] initWithBytes:[sequenceData bytes] length:[sequenceData length] encoding:NSUTF8StringEncoding]; 

NSDictionary *result = [NSDictionary dictionaryWithObjectsAndKeys: 
self.chromosome, @"chromosome", 
[NSNumber numberWithInt:self.basepairStart], @"basepairStart", 
[NSNumber numberWithInt:self.basepairEnd], @"basepairEnd", 
sequenceData, @"sequenceData", 
sequenceString, @"sequenceString", 
nil]; 

[sequenceData release]; 
[sequenceString release]; 

[self.target performSelectorOnMainThread:self.action withObject:result waitUntilDone:NO]; 


} 

正如你可以看到sequenceData和sequenceString都被正確釋放。另外,我已經證實,這個亞類(染色體等)的所有ivars都有適當的內存管理。

-Doug

+0

定義,我們看到更多的代碼,就知道什麼有用的東西泄漏。你怎麼清理?如果你不是,那就是那裏的問題! –

+0

哎呦。我只是添加了所有相關的代碼。 – dugla

+0

你用NSZombieEnabled在樂器中運行這個嗎?這可能導致虛假的「泄漏」出現。 – nall

回答