connectionDidFinishLoading:在设备上调试时从不调用connect

时间:2012-02-20 19:35:16

标签: iphone objective-c ios xcode

我是第一次在设备上调试我的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”应该已经发布。

再次......这一切在模拟器中都很有用。

有什么想法吗?

谢谢!

0 个答案:

没有答案