На самом деле нормально выпускать его там, как только соединение отправлено через initWithRequest, единственное, что имеет значение, это то, что делегат существует, или я верю, что ответ будет просто потерян.
Из того, что яМожно сказать, что единственная причина не выпускать его есть, если вы хотите вызвать [соединение отменено] в какой-то момент в одной из функций делегата, и в этом случае было бы лучше сделать то, что вы предлагаете, и выпустить это в ОБАМ соединении connectionDidFinishLoading иdidFailWithError, поскольку будет вызываться только один из них (верно?).
Редактировать: для более подробного ответа NSURLConnection initWithRequest является асинхронным запросом.Таким образом, он на самом деле порождает свой собственный поток (но вызывает функции делегата в потоке, который вызвал initWithRequest).Таким образом, в основном, в потоке, который вызывает initWithRequest, вы фактически сделали с объектом подключения и можете его освободить.Все это время он делает что-то в другом потоке, и вам не нужно об этом беспокоиться.
Кроме того, я должен отметить, что если вы все-таки выпустите его, убедитесь, что вы НЕ выпускаете его в конце/ fail, потому что это не будет действительный объект.