В приведенном ниже коде я создаю новый NSString с alloc и инициализируя его содержимым некоторого файла. Поскольку я называю alloc, я знаю, что моя обязанность вызывать выпуск в строке, когда я закончил. Но как насчет переменных «линии» и «линия»? Поскольку метод «componentsSeparatedByString» не начинается со слова «новый» или «создать», могу ли я предположить, что «линии» будут автореализованы? Тот же вопрос для «строки», поскольку «objectAtIndex» также не начинается с «нового» или «создания».Должен ли я назвать освобождение от этих переменных-переменных какао?
NSString* buffer = [[NSString alloc] initWithData:[fileManager contentsAtPath:@"/foo"] encoding:NSUTF8StringEncoding]; NSArray* lines = [buffer componentsSeparatedByString:@"\n"]; NSString* line = [lines objectAtIndex:5]; // do something with line [buffer release];
Значит, код выше хорошо? Или я должен называть «выпуск» на линиях и линии тоже? Благодарю.
Жизненное чтение: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/ –