Во-первых, вам нужно переосмыслить методы работы ваших методов.
[request didReceiveDataSelector];
возвращает имя метода, который вызывается при получении данных запросом.Поскольку вы не устанавливаете это значение для переменной, эта строка ничего не делает. if (receivedData==0)
не будет делать то, что вы хотите, чтобы она делала.Запрос выполняется асинхронно, поэтому значение receivedData
никогда не будет отражать то, что происходит в запросе, который вы запустили двумя строками ранее. - Вы пытаетесь проверить, является ли
receivedData
нулевым?Если это так, скажите это: if (receivedData == nil)
, это прояснит, что вы пытаетесь сделать здесь. - В вашем методе
request:didReceiveData
похоже, что вы получаете данные из запроса и добавляете их всамо по себе (я не уверен, как выглядит свойство responseData
, когда вы обращаетесь к нему до завершения запроса. Оно может быть нулевым).Что бы здесь ни происходило, я уверен, что это не то, что вы хотели.
Наконец, если вы действительно не хотите собирать и анализировать входящие данные самостоятельно (вероятно, нет), вам следуетреализовать эти два метода вместо метод request:didReceiveData
.
- (void)requestFinished:(ASIHTTPRequest *)request;
- (void)requestFailed:(ASIHTTPRequest *)request;
Они вызываются после того, как запрос полностью выполнен.Получите доступ к строковому значению для ответа сервера, вызвав
NSString *receivedString = [request responseString];
Только после вызова метода requestFinished
вы можете установить значение своего имени UITextField
.
И один совет: редко вам нужно использовать глобальные переменные в Obj-C, и вам, конечно, не нужно их здесь использовать.Я бы избавился от этих как можно скорее.
Я сделал много предположений о том, каковы были ваши намерения, поэтому оставьте комментарий, если это не то, что вы хотели.Удачи!