我正在使用NSURLSession
和NSURLSessionTask
下載應用程序中的文件。如果文件存在於服務器上,那麼它工作正常。如果文件不可用,那麼它將數據寫入文件並且不要下載它。 例如::如果文件不可用的寫入iOS ::如果無法使用NSURLSession下載文件,則錯誤爲零
訪問該文件中被拒絕
,並沒有任何錯誤完成任務。在這種情況下,錯誤爲零。
但我想顯示警告框給用戶說文件不可用。
下面是代碼...
task1 = [session dataTaskWithURL:[NSURL URLWithString:[S3_SERVER_URL stringByAppendingString:propFile]] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
propfilePath = [[Util getInAppTempPath] stringByAppendingString:propFile];
NSLog(@"DestPath : %@", propfilePath);
[receivedData appendData:data];
NSLog(@"Succeeded! Received %lu bytes of data",(unsigned long)[data length]);
//[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[data writeToFile:propfilePath atomically:YES];
//NSLog(@"iOSDBVersion: %@", [plistDictionary objectForKey:@"iOSDBVersion"]);
//NSLog(@"ttodDBVersion: %@", [plistDictionary objectForKey:@"ttodDBVersion"]);
if(error == nil){
[Util getDataFromPlistFile];
[Util isAppRunBefore];
[self downloadDatabase];
} else {
[self alertNoPlist];
}
}];
[task1 resume];
它從未進入else塊。
我累了把這個放在try catch block
那麼也沒有運氣。
如何處理iOS中的這些錯誤?
您是否嘗試過在該完成塊中設置斷點來查看設置的內容?我懷疑你說「它永遠不會進入其他區塊」,因爲你沒有看到警報;但我不認爲這是足夠好的證據(即alertview可能不會顯示爲線程不是主線程)。 – trojanfoe
是的,我在開始時保持斷點...它給出的錯誤是零,響應一些十六進制值,數據爲250字節... – Anjali
檢查響應的狀態代碼。 –