iPhone 6和iPad空气模拟器不进行网络通话



我正在试用Xcode 6 GM Seed并编译我的应用程序,该应用程序利用网络调用。当使用iPhone 5或iPad Retina的Xcode 6模拟器时,网络呼叫一切正常,但奇怪的是,当使用iPhone 6/plus或iPad Air时,呼叫不起作用。我尝试过在iOs 7.1和8下进行编译。如果它不能在Xcode 6或ios 8下工作,那将是一回事,但我不明白为什么这样的东西不能在这些模拟器下工作。代码如下,但作为注意事项,我可以看到没有进行网络调用,也没有抛出错误。

更新:在5s的sim下,它也在发生。但不是5或更早版本,也不是非空中iPad。

-(void)getActiveChannels
{
    NSString *externalURL = @"https://www.mywebservice.com";
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:externalURL]];
    request.HTTPMethod = @"POST";
    [request setValue:@"application/x-www-form-urlencoded;charset=utf-8" forHTTPHeaderField:@"Content-Type"];
    NSString *postDataStr = [NSString stringWithFormat:@"auth=%s",AUTH_CODE];
    NSData *requestBodyData = [postDataStr dataUsingEncoding:NSUTF8StringEncoding];
    [request setHTTPBody:requestBodyData];
    NSURLSessionDataTask *postDataTask = [self.session dataTaskWithRequest:request];
    [postDataTask setTaskDescription:@"getActiveChannels"];
    [postDataTask resume];
}

从我尝试的断点来看,这是完全执行的,但正如所提到的,当使用Phone 6 sim或iPad Air时,它从未真正调用过URL。

以下是使用返回数据的方法,尽管它没有走那么远。

-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
{
    self.channelDict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
}
-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
{
    NSLog(@"%@",task.taskDescription);
    if ([task.taskDescription isEqualToString:@"getActiveChannels"])
    {
        [[NSNotificationCenter defaultCenter] postNotificationName:@"channelsReady"
                                                            object:self.channelDict];
    }
}

我找到了答案,但没有找到原因。CCD_ 1和CCD_。我把它们都设置为"弱",因为当它们"强"时,就会有泄漏。为什么这在某些iphone模拟机中不是一个问题,但在其他模拟机中却是一个谜。

最新更新