Я впервые отлаживаю свое приложение IOS5 на устройстве, и оно ведет себя очень странно. Мое приложение выполняет асинхронные вызовы http. Когда эти вызовы завершены, я публикую уведомления для обработки возвращенных значений. Все это прекрасно работает на симуляторе. Однако на устройстве, похоже, никогда не вызывается метод делегата connectionDidFinishLoading: connection NSURLConnection.
Что еще более странно, так это то, что приложение запускает некорректно обработчик уведомлений.
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:NO];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
SBJsonParser *jsonParser = [[SBJsonParser alloc]init];
NSError *error = nil;
id jsonObject = [jsonParser objectWithString:responseString error:&error];
switch (currentRequestType) {
case USER_EXISTS:{
NSNumber *userExists =[jsonObject objectForKey:@"exists"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"userExistsNote" object:userExists];
}
break;
case REGISTER_USER:{
NSNumber *success =[jsonObject objectForKey:@"success"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"registerUserNote" object:success];
}
case AUTHENTICATE_USER:{
NSNumber *success =[jsonObject objectForKey:@"success"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"authenticateUserNote" object:success];
}
default:
break;
}
}
Вышеуказанный оператор switch указывает, какое уведомление должно быть опубликовано. Эта часть кода, кажется, никогда не запускается при отладке на устройстве, однако метод, прослушивающий уведомление «registerUserNote», запускается ... хотя «authenticateUserNote» должен был опубликовать.
Опять же ... все это прекрасно работает в симуляторе.
Есть идеи?
Спасибо!