Во-первых, синтаксис сообщения:
[n performConnection];
Имеется синтаксис доступа к свойствам. И поскольку метод напечатан как возвращающий void
, я бы не принял его как гарантированно работающего даже на этом уровне.
В любом случае, основная проблема заключается в том, что вы используете асинхронный API NSURLConnection (хорошо), но ожидаете синхронного поведения (плохо). Все методы NSURLConnection возвращаются немедленно, а затем работают в фоновом режиме. Идея заключается в отправке сообщений делегата на сетевой контроллер по мере того, как это происходит, но сразу после того, как вы все закончите, вы освобождаете сетевой контроллер (в свою очередь, утечка соединения, так как вы не release
в вашем dealloc
методе), затем выйдите.
Вам необходимо запустить цикл выполнения до того, как вы отпустите сетевой контроллер, чтобы дать время соединения, чтобы отправить запрос, прочитать ответ и отправить сетевому контроллеру несколько сообщений делегата. Вам также необходимо cancel
и release
соединение в методе dealloc
сетевого контроллера.
Кроме того, вам необходимо сделать эту переменную NSMutableData переменной экземпляра, поскольку вам нужно иметь возможность получить ее из методов делегата. Не забудьте также выпустить это в вашем методе dealloc
(и release
it и установить его в nil
в обоих методах делегата, которые указывают, что соединение установлено).