大佬教程收集整理的这篇文章主要介绍了ios – 使用backgroundSessionConfiguration和NSURLSessionUploadTask上传会导致应用崩溃,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
以下是代码示例.奇怪的是,虽然在线有无数的downloadTaskWithRequest示例,但我找不到一个将背景和上传结合在一起的单例.
//Create a session w/ background settings NSURLSessionConfiguration *config = [NSURLSessionConfiguration backgroundSessionConfiguration:@"identifierString.foo"]; NSURLSession *upLoadSession = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil]; //Create a file to upload UIImage *image = [UIImage imageNamed:@"onboarding-4@2x.png"]; NSData *imageData = UIImagePNGRepresentation(image); NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *URLs = [fileManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask]; NSString *documentsDirectory = [[URLs objectAtIndex:0] absoluteString]; NSString *filePath = [documentsDirectory stringByAppendingString:@"testfile.png"]; [imageData writeToFile:filePath atomically:YES]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://file.upload/destination"]]; [request setHTTPMethod:@"PUT"]; NSURLSessionUploadTask *uploadTask = [upLoadSession uploadTaskWithRequest:request fromFile:[NSURL URLWithString:filePath] completionHandler:^(NSData *data,NSURLResponse *response,NSError *error) { //code }]; [uploadTask resume];
这段代码在uploadTaskWithRequest的行中崩溃:……就在它到达最后的恢复行之前.
奇怪的是,当我使用除backgroundSessionConfiguration之外的任何配置类型时,这似乎工作正常.需要帮助!
提前致谢.
1)我设置了一个异常断点来获取阻止我看到实际异常错误打印输出的堆栈跟踪 – oops.
2)不能使用具有backgroundSessionConfiguration完成回调的uploadTaskWithRequest版本(这并不奇怪,但仍未详细记录).
3)将您的PNG数据写入/ var / …并使用file:/// var / …将其提供给uploadTaskWithRequest(这只是尴尬,因为您通常不需要在单个序列之间进行转换命令)
很高兴在这里提供一个NSUrlSessionUploadTask示例代码,因为整个interwebs上似乎没有它们. LMK,如果有人想要的话.
以上是大佬教程为你收集整理的ios – 使用backgroundSessionConfiguration和NSURLSessionUploadTask上传会导致应用崩溃全部内容,希望文章能够帮你解决ios – 使用backgroundSessionConfiguration和NSURLSessionUploadTask上传会导致应用崩溃所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。