我真的有一個奇怪的問題:dataWithContentsOfURL已經開始在蜂窩上返回錯誤代碼256,但不通過WiFi。dataWithContentsOfURL返回NSCocoaErrorDomain代碼= 256通過蜂窩,但不是WiFi
操作無法完成。 (可可錯誤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];
...
});
有什麼想法?我不知道爲什麼會發生這種情況。它也出現在vanilla dataWithContentsOfURL(與選項相反)。
如果您的應用程序啓用了蜂窩數據,請嘗試查看「設置 - >蜂窩 - >使用蜂窩數據」。這是最新的iOS功能,並且「Celluar禁用此應用」警報並不總是顯示,因此可能會給用戶造成混淆。如果您爲此應用設置蜂窩數據,並在蜂窩網絡中使用該應用,則這些基礎方法將返回錯誤256. – viggio24
@ viggio24好的想法,但這不是它 - 只需雙重檢查,手機數據確實已啓用。 – w4th
你的代碼泄漏了一個NSError。你想要的'NSError * error = nil;' –