Я живу на Instruments последние несколько часов, уставившись на удивительную утечку памяти. Я выделил его на эту единственную строку кода в подклассе NSOperation, который я написал:
NSData *myData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:myURLString]];
Периодически это приведет к утечке 3500 байт. Кто-нибудь еще видит это? Если да, то есть ли обходной путь?
Заранее спасибо.
UPDATE:
Вот соответствующий раздел кода в теле main () моего подкласса NSOperation:
- (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 правильно освобождены. Также я подтвердил, что все ивары этого подкласса (хромосома и т. Д.) Правильно управляются памятью.
-Doug