0

我有一个包含天气的应用程序......我从 Google 的天气 API 收到的数据。我正在绞尽脑汁想弄清楚我遇到的一个问题,但我一直没有成功,所以我想是时候在这里问一问了。

这是我的代码:

query = [[NSString stringWithFormat:@"%@",query] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"query: %@",query);

// SET GOOGLE WEATHER XML LOCATION
CXMLDocument *parse = [[CXMLDocument alloc]initWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com/ig/api?weather=%@", query]]options:0 error:nil];
NSLog(@"URL: %@", parse);

查询变量保存我的反向地理编码器位置(例如芝加哥,IL),我将它附加到 Google URL 以获取 XML。

如您所见,我正在注销查询和解析变量。我可以看到我在执行代码时获得了当前位置的合法查询位置,但是当我记录解析变量时,我什么也没得到。解析日志显示 null...Google 没有返回任何内容。我可以看到 URL 是正确的,我什至可以转到我的浏览器并使用相同的记录链接获取我需要的数据。

有趣的是……它在模拟器中运行良好,在我运行 5.1.1 的 iPhone 上也运行良好。我的 iPad 上确实安装了 iOS6b4,这导致了这个问题,但由于我没有使用 iOS6 中引入的任何新代码,所以这里应该不会引起任何问题。

关于为什么 XML 解析拒绝在只有 Wi-Fi 的 iPad 上工作的任何想法?

顺便说一句,在有人告诉我开始使用 NSXMLParser 而不是 TouchXML 之前……我确实有一个运行 NSXMLParser 的测试版本,而且我在那里也遇到了同样的问题。我不知所措。

4

1 回答 1

0

我终于想通了......它实际上与locationManager有关。

我有以下代码:

 if ([locationManager respondsToSelector:@selector(startMonitoringSignificantLocationChanges)]) {
    [locationManager startMonitoringSignificantLocationChanges]; }
 else {
     [locationManager startUpdatingLocation]; }

摆脱 if/else 语句并使用以下解决方案:

[locationManager startUpdatingLocation];
于 2012-08-13T15:25:29.403 回答