gpt4 book ai didi

ios - dataWithContentsOfURL 通过蜂窝返回 NSCocoaErrorDomain Code=256,但不是 wifi

转载 作者:行者123 更新时间:2023-12-01 17:53:44 28 4
gpt4 key购买 nike

我遇到的非常奇怪的问题:dataWithContentsOfURL 已经开始通过蜂窝网络返回错误代码 256,但不是通过 wifi。

The operation couldn’t be completed. (Cocoa error 256.)



我确实有蜂窝数据连接,并且它正在运行,所以我的蜂窝连接没有问题。加上代码在 wifi 上运行良好,所以基本代码不是问题。有问题的代码是:
dispatch_queue_t queue = dispatch_queue_create("com.appName.FetchImage", DISPATCH_QUEUE_SERIAL);
dispatch_async(queue, ^{
...
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
NSLog(@"URL: %@", url);
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSError *error = [[NSError alloc] init];
NSData *imgData = [NSData dataWithContentsOfURL:url options:NSDataReadingUncached error:&error];
if (error) NSLog(@"Error loading data: %@", error);
UIImage *image = [UIImage imageWithData:imgData];
...
});

有什么想法吗?我不知道为什么会发生这种情况。它也发生在普通的 dataWithContentsOfURL 中(与选项相反)。

最佳答案

NSCocoaErrorDomain Code = 256方法:

A file system or file I/O related error whose reason is unknown.



简单地说,它告诉我们 什么都没有 .

但是总的来说, NSDatadataWithContentsOfURL应该只用于访问本地文件资源。

Important: Do not use this synchronous method to request network-based URLs. For network-based URLs, this method can block the current thread for tens of seconds on a slow network, resulting in a poor user experience, and in iOS, may cause your app to be terminated.



您可以尝试改进代码并使用更好的方式下载数据。它可能会解决您遇到的问题。而不是使用 dataWithContentsOfURL , 你可以使用 NSURLConnection的类方法如:
+ (void)sendAsynchronousRequest:(NSURLRequest *)request 
queue:(NSOperationQueue *)queue
completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler;

基于:

Using NSURLConnection

NSData Class Reference

关于ios - dataWithContentsOfURL 通过蜂窝返回 NSCocoaErrorDomain Code=256,但不是 wifi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21959731/

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