我对目标C很新。开始使用NSURLSession处理回调。应用程序在设备上运行完美。但是模拟器会出现一些错误。
我正在尝试执行POST并拥有一个委托,在收到响应时通知调用方。我能够获得预期的数据并且不会破坏我的应用程序。但是,当我使用lldb调试器逐步执行指令时,它会给我一个EXC BAD ACCESS,并且错误代码会因不同的模拟器而发生变化。这是iPhone 5模拟器上的instruction and error.,这是iPhone 6模拟器上的instruction and error。 以下是回叫的代码。
NSData *postData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];
NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
// Send the request to the server
NSURLSessionDataTask *dataTask=[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error){
[self.delegate sendStatus:@"FetchCompleted!"];
}];
[dataTask resume];
我的方案是僵尸启用,它没有记录任何僵尸对象。我很确定上面的代码是错误的根本原因,因为我试图通过评论来调试它并且工作正常。任何帮助,将不胜感激。下面附有堆栈跟踪。谢谢!