У меня есть 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
}
}