Я создал объект с именем DateTracker, который соответствует NSCoding, поэтому он содержит методы encodeWithCoder и initWithCoder.Когда я инициализирую его, я вызываю следующее:
DateTracker *currentTracker = [[DateTracker alloc] initFromFile];
Метод initFromFile выглядит следующим образом:
- (id)initFromFile {
NSString *filePath = [self dataFilePath];
if ([[NSFileManager defaultManager] attributesOfFileSystemForPath:filePath error:NULL]) {
NSData *data = [[NSMutableData alloc] initWithContentsOfFile:filePath];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
self = [unarchiver decodeObjectForKey:kDateDataKey];
[unarchiver finishDecoding];
[unarchiver release];
[data release];
}
return self;
}
Однако, когда я пытаюсь вызвать
[currentTracker release];
мое приложение вылетает.
Когда я запускаю приложение с инструментами производительности для проверки утечек памяти, он жалуется, что я не освобождаю этот объект.
Есть идеи, что я делаю не так?