Создание нового NSURLConnection внутри connectionDidFinishLoading - PullRequest
0 голосов
/ 17 мая 2011

У меня есть NSURLConnection, который получает данные из веб-службы JSON, и все работает нормально.Я использую его для публикации чего-либо на сервере и получения ответа об успешном завершении.

После этого вызова я хочу инициировать еще одно NSURLConnection для обновления данных, поэтому я делаю это внутри метода connectionDidFinishLoading, однако этовторое соединение не вызывает connectionDidFinishLoading после завершения загрузки.

Могу ли я не инициировать NSURLConnection из метода connectionDidFinishLoading?

РЕДАКТИРОВАТЬ: Ниже приведен код.Я подклассифицировал NSURLConnection, чтобы включить тег NSString, вызывая новый класс NSURLConnectionHelper.Я использую это, чтобы определить, какое соединение вызвало connectionDidFinishLoading.

- (void)connectionDidFinishLoading:(NSURLConnectionHelper *)connection
{ 

        if([connection.Tag isEqual:@"NewMessage"]){

            NSString *jsonString = [[NSString alloc] initWithData:receivedNewMessageData encoding:NSASCIIStringEncoding];

            NSDictionary *results = [jsonString JSONValue];

            [jsonString release];

            [connection release];

            if ([[results objectForKey:@"MessageAdded"] isEqual:@"True"]) {

                User *newUser = [[User alloc] init];
                [newUser retrieveFromUserDefaults];

                if([newUser IsLoggedIn]){
                Message *message = (Message *)[messages objectAtIndex: 0];

                        NSString *urlAsString = // url for webservice goes here

                        NSURL *url = [NSURL URLWithString:urlAsString];
                        NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
                        NSURLConnectionHelper *connection1 = [[NSURLConnectionHelper alloc] initWithRequest:request delegate:self];
                        connection1.Tag = @"GetLatestMessages";

                        [request release];

                        if (connection1) {
                                receivedLatestMessagesData = [[NSMutableData data] retain];
                        } else {
                                // Inform the user that the connection failed.
                        }
                }            
            }
      }else if([connection.Tag isEqual:@"GetLatestMessages"]){
    //do some other stuff but this code is never reached
  }
}

Ответы [ 2 ]

0 голосов
/ 20 мая 2011

В URL моего веб-сервиса появилось пробел, как только я исправил, что он работает.

0 голосов
/ 17 мая 2011

Я не знаком с NSURLConnectionHelper, но похоже, что вы никогда не запускаете соединение.

...