Widziałem wiele pytań/odpowiedzi na temat wycieków pamięci w NSDateFormatter, ale żaden nie wydaje mi się pomóc mi określić, co powoduje wyciek pamięci w mojej aplikacji. Tu jest mój kodu:Wyciek pamięci podczas używania NSDateFormatter
- (id)init
{
if ((self = [super init]))
{
items = [[NSMutableArray alloc] init];
events = [[NSMutableArray alloc] init];
buffer = [[NSMutableData alloc] init];
format = [[NSDateFormatter alloc] init];
lastFromDate = @"";
}
return self;
}
- (void)presentingDatesFrom:(NSDate *)fromDate to:(NSDate *)toDate delegate:(id<KalDataSourceCallbacks>)delegate
{
[format setTimeZone:[NSTimeZone systemTimeZone]];
[format setDateFormat:@"MM/dd/yyyy"];
NSString *stringFromDate = [NSString stringWithString:[format stringFromDate:fromDate]];
NSString *stringToDate = [NSString stringWithString:[format stringFromDate:toDate]];
NSLog(@"From date: %@, To date: %@", stringFromDate, stringToDate);
[self didDatesChange:stringFromDate];
if (dataReady) {
[callback loadedDataSource:self];
return;
}
callback = delegate;
[self retrieveEventData:stringFromDate to:stringToDate];
}
- (void)dealloc
{
[items release];
[events release];
[buffer release];
[lastFromDate release];
[format release];
[super dealloc];
}
Kiedy uruchamiam „Profil” -> „Przecieki”, pojawia się przeciek pamięci za każdym razem, gdy funkcja jest wywoływana na linii
NSString *stringFromDate = [NSString stringWithString:[format stringFromDate:fromDate]];
Może ktoś wyjaśnić, co może być dziać się? dzięki Mike
proszę pisać didDatesChange a retrieveEventDa ta: to :. ponieważ nie ma oczywistych przecieków w kodzie w twoim pytaniu, moje przypuszczenie jest niezrównoważonym zatrzymaniem wewnątrz jednej z tych metod. – danh
dlaczego Instruments wskazuje mi linię, w której jest sformatowany NSDate, jeśli przecieki były w jednej z tych funkcji? –