Ios NSURL已在应用程序中停止工作
我编写了一个应用程序,可以下载html文件中的数据,然后从中提取数据。这个应用程序几个月来一直运行良好,但最近几天它停止了 这是代码Ios NSURL已在应用程序中停止工作,ios,ios6.1,Ios,Ios6.1,我编写了一个应用程序,可以下载html文件中的数据,然后从中提取数据。这个应用程序几个月来一直运行良好,但最近几天它停止了 这是代码 NSString* urlString = [@"http://easytide.ukho.gov.uk/EASYTIDE/EasyTide/ShowPrediction.aspx?PortID=" stringByAppendingString:portCode]; urlString = [urlString stringByAppendingString:@
NSString* urlString = [@"http://easytide.ukho.gov.uk/EASYTIDE/EasyTide/ShowPrediction.aspx?PortID=" stringByAppendingString:portCode];
urlString = [urlString stringByAppendingString:@"&PredictionLength=7"];
NSURL* easyTidesUrl = [NSURL URLWithString:urlString];
NSData* easyTidesHtmlData = [NSData dataWithContentsOfURL:easyTidesUrl];
当我检查NSURL对象时,url没有正确设置(字符串有错误),NSURL对象显示为。我知道过去也有人问过类似的问题(我尝试过这些解决方案,但在这种情况下它们不起作用),但奇怪的是,这个应用程序运行得很好,现在却没有做任何改动就坏了
这里有更多的代码。。。基本上,停止工作的部分是函数的第一部分
+(void)getTides:(NSMutableArray *)tidalDateArray withPortCode:(NSString*)portCode
{
NSString *parameter = [portCode stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *urlString = [NSString stringWithFormat:@"http://easytide.ukho.gov.uk/EASYTIDE/EasyTide/ShowPrediction.aspx?PortID=%@&PredictionLength=7", parameter];
NSURL *easyTidesUrl = [NSURL URLWithString:urlString];
NSData *easyTidesHtmlData = [NSData dataWithContentsOfURL:easyTidesUrl];
TFHpple* tidesParser = [TFHpple hppleWithHTMLData:easyTidesHtmlData];
NSString* easyTidesXPathQueryString = @"//div[@class='HWLWPanel']/table/tr/th[@class='HWLWTableHeaderCell']";
NSArray* tideDateNodes = [tidesParser searchWithXPathQuery:easyTidesXPathQueryString];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
portCode
变量中可能存在一些非法许可证,如空格:
NSString *parameter = [portCode stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *urlString = [NSString stringWithFormat:@"http://easytide.ukho.gov.uk/EASYTIDE/EasyTide/ShowPrediction.aspx?PortID=%@&PredictionLength=7", parameter];
NSURL *easyTidesUrl = [NSURL URLWithString:urlString];
NSData *easyTidesHtmlData = [NSData dataWithContentsOfURL:easyTidesUrl];
Easytide似乎已关闭,因此可能不是API问题 问题看起来很简单,毕竟。。。url本身是错误的-无论是他们更改了它还是它在代码中被更改了,我不知道。。。感谢您的帮助和代码改进…您是否得到了NSURL*easyTidesUrl nil?不,NSURL对象有内存地址等。因此我假设它已初始化。。。问题似乎出在nsurl.urlStringI上。我尝试了上述地址,但被重定向到错误页面。。。如果你没有修改应用程序,并且它无故中断,那么问题可能出在其他地方。我怀疑网站或主机服务器中可能有更改。url没有空格,但urlString对象中的实际字符串显示为未知类。。。url是:您是否尝试过我的代码,它应该会过滤掉您
startViewController
变量中一些不受支持的特许权。我确实尝试过。。。从portCode创建更安全的参数变量没有什么不同,不幸的是……您能举一个portCode
变量的例子吗,另外,如果您可以使用po
打印出easyTidesUrl
。打印端口代码说明:0131打印easyTidesUrl说明:fr某些原因此url中有一个额外的EasyTide。。。它不在xcode中。。。