Я начинаю изучать IOS Development, и у меня есть некоторые сомнения по поводу освобождения объектов, для которых я не хранил ссылку. Я взглянул на вопрос "Выпустить объект без указателя?"где предлагается отправить сообщение об автозапуске объекту сразу после его создания, и поэтому я попытался сделать то же самое в следующем фрагменте кода:
int main(int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSURLResponse * response = nil;
NSError * error = nil;
NSData * data;
data = [NSURLConnection
sendSynchronousRequest: [[NSURLRequest requestWithURL:
[[NSURL URLWithString: @"http://www.google.it"]
autorelease]
] autorelease]
returningResponse: &response
error: &error];
[data writeToFile: @"/tmp/test.html"
atomically:NO];
[data release];
[pool drain];
return 0;
}
Я не смог выполнить программу вXCode еще нет, но я компилирую под linux, и сообщение об автозапуске, отправленное объекту NSURLRequest, вызывает ошибку сегментации (я думаю, что это вызвано не самим сообщением, а утечкой пула, который пытается освободить объект, из-за автоматического выпускасообщение).Что не так с сообщением об автоматическом выпуске, которое я отправил объекту NSURLRequest?
Я думаю, что если справочный документ для метода класса, такого как requestWithUrl, говорит, что он «создает и возвращает запрос URL», это означает, что я отвечаю за освобождение объекта, когда я закончу его использовать,Я неправ?Я хотел бы очень хорошо понять эти правила управления памятью, прежде чем идти дальше с чем-то еще .. Я надеюсь, что мои вопросы не слишком глупы ;-)
Ну, только один последний вопрос: я должен также выпустить ошибкуа объекты данных возвращаются по синхронному запросу?
Заранее благодарю за любую помощь!