Когда Вы выделяете и инициализируете и возражаете и затем хотите возвратить тот объект, как Вы, как предполагается, возвращаете его?
У меня есть следующий код:
NSXMLDocument* fmdoc = [[NSXMLDocument alloc] initWithContentsOfURL:trackInfoUrl
options:NSXMLDocumentTidyXML error:&err];
return [fmdoc autorelease];
Это корректно?
, который является правильным. Поскольку вы инициализируете объект, это ваша ответственность за выпустить или автоматизировать его.
Поскольку уставный счет на создание составляет 1, и вы хотите, чтобы он не был удален до того, как метод вызова имеет возможность использовать объект, Autorelease - это правильное сообщение для отправки.
Если вы отправили его выпуску, память немедленно была бы восстановлена. Отправляя его AutoRelease, память не будет восстановлена до тех пор, пока не будет сливаться пул Autorelease по умолчанию, что не произойдет до тех пор, пока не будет иметь возможность сохранить объект, если он должен.