2012-06-07 1 views
1

У меня проблема в NSURLConnection. Мой метод didRecieveData не вызывается. Я не знаю, в чем проблема. Я также прошел почти все предыдущие проблемы, но, похоже, ничего не решает.соединение: didReceiveData не называется

Пожалуйста, помогите мне. Это мой код.

 -(void)gettheJSONdata 
    { 
      NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:_serverAddress cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10]; 

      [request setHTTPMethod: @"GET"]; 

      NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; 

      NSLog(@"This is displayed"); 
    } 

    -(void)connection:(NSURLConnection*)connection didReceiveData:(NSData *)data 
    { 
      NSLog(@"This is not displayed."); 
      AppAppDelegate *JSONdata = (AppAppDelegate*)[[UIApplication sharedApplication] delegate]; 

      JSONdata.userloginJSONdata = [[NSData alloc] initWithData:data]; 

      NSError *error; 

      _result = [NSJSONSerialization JSONObjectWithData:JSONdata.userloginJSONdata options:NSJSONReadingMutableContainers error: &error]; 

      NSString *test = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
      NSLog(@"Json data : %@",test); 
    } 

    -(void) connectionDidFinishLoading:(NSURLConnection*) connection 
    { 
      AppAppDelegate *resultofJSONdata = (AppAppDelegate*)[[UIApplication sharedApplication] delegate]; 

      resultofJSONdata.JSONdataresult = _result; 
     } 
+0

Добавили ли вы 'протокол NSURLConnectionDelegate' вам заголовка файла? –

+0

Yup ... @interface Магистр: NSObject Этот способ ... – khushalbokadey

+0

Протокол в файле заголовка ни на что не влияет. Реальный вопрос в том, был ли установлен делегат NSURLConnection? Я предполагаю, что это было ... так как я предполагаю, что connectionDidFinishedLoading: получает удар, не так ли? – Christian

ответ

0

Наконец-то я решил проблему. Я не синтезировал JSONdataresult.

Я не знал, что это может вызвать проблему с NSURLConnection.

0

Вы не начали запрос. Вам нужно:

[connection start]; 

или

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; 

Edit: Мой комментарий ниже имел неправильное имя метода. Попробуйте реализации как:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 

и

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 

И посмотреть, если любой из тех, которые пострадали.

+0

Это тоже не проблема ... попытался, но тот же результат. – khushalbokadey

+1

Обновите свое сообщение новым кодом, потому что это определенно проблема с вашим кодом. Также примените метод connectionDidStart: delegate и проверьте, не попал ли этот файл. Потому что ваш запрос может быть неудачным, что не ударит ни по одному из методов, которые вы опубликовали. – Christian

+0

Есть ли какой-либо метод, например connectionDidStart: ??? Я его никогда не видел. Не могли бы вы прислать мне синтаксис. – khushalbokadey

0

в моем случае заголовок не было никакой связи didReceiveData не вызывался, не забудьте добавить разрешение, если это требуется для запроса,

[urlRequest setValue:[UserContext sharedInstance].requesthandler.reqHeader forHTTPHeaderField:@"Authorization"];