gpt4 book ai didi

ios - 使用 backgroundSessionConfiguration 和 NSURLSessionUploadTask 上传导致应用崩溃

转载 作者:可可西里 更新时间:2023-11-01 06:17:51 24 4
gpt4 key购买 nike

我正在尝试使用 NSURLSessionUploadTask 进行新的奇特的 iOS 7 后台上传,当我使用 defaultSessionConfiguration 运行时它似乎可以工作,但是一旦我尝试 backgroundSessionConfiguration 它就会在我调用 uploadTaskWithRequest 的行崩溃:

这是下面的代码示例。奇怪的是,虽然网上有无数的 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: ... 行崩溃,就在它到达最后的 resume 行之前。

奇怪的是,当我使用 backgroundSessionConfiguration 以外的任何配置类型时,这似乎工作正常。需要帮助!

提前致谢。

最佳答案

好吧,这只是我的愚蠢和不彻底:

1) 我设置了一个异常断点来获取阻止我看到实际异常错误打印输出的堆栈跟踪——糟糕。

2) 不能使用具有 backgroundSessionConfiguration 完成回调的 uploadTaskWithRequest 版本(不足为奇,但仍然没有很好的记录)。

3) 将您的 PNG 数据写入/var/... 并使用 file:///var/... 将其提供给 uploadTaskWithRequest(这很尴尬,因为您不需要经常在两者之间进行转换单个命令序列)

很高兴在这里提供一个 NSUrlSessionUploadTask 示例代码,因为在整个互联网上似乎没有它们。 LMK 如果有人想要的话。

关于ios - 使用 backgroundSessionConfiguration 和 NSURLSessionUploadTask 上传导致应用崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21767334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com