我是第一次在设备上调试我的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”应该已经发布。
再次......这一切在模拟器中都很有用。
有什么想法吗?
谢谢!