如何在一段时间后更新解析数据

时间:2012-07-12 12:54:06

标签: iphone ios ios4

我有xml http://weather.yahooapis.com/forecastrss?w=20070458&u=c,我希望在更新xml时我的数据也会更新。

感谢。

4 个答案:

答案 0 :(得分:1)

正如您所看到的,此XML具有ttl节点,该节点告知生存时间为60秒。因此,您可以定期(每分钟一次,根据 TTL 值)检查此URL并保持最新。

答案 1 :(得分:0)

阅读本教程,了解xmlparserNSXMLParser Class Reference。我认为这会对你有所帮助。

答案 2 :(得分:0)

您可以对其进行投票。

static void timerHandler(CFRunLoopTimerRef timer, void *info)
{
    //request the xml here and compare it with the previous one
}

- (void)weatherMonitor
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    CFRunLoopTimerContext context = {0, self, NULL, NULL, NULL};
    CFRunLoopTimerRef timer = CFRunLoopTimerCreate(kCFAllocatorDefault, CFAbsoluteTimeGetCurrent(), 1, 0, 0, timerHandler, &context);//use your own time interval
    CFRunLoopAddTimer(CFRunLoopGetCurrent(), timer, kCFRunLoopDefaultMode);
    CFRelease(timer);
    CFRunLoopRun();
    [pool drain];
}

在后台线程中运行weatherMonitor。

答案 3 :(得分:0)

您有两个选择:

  1. 实施Easy APNS,它会通知您的应用有关任何更改。 您可以直接在通知中提供xml数据 消息,或者您可以在发出请求时立即提取xml 得到通知。
  2. 在您的应用中设置一个计时器,该计时器将启动检查xml的请求 无论如何,每1-10-60分钟更新一次。
  3. 根据您的要求和能力,两者都有利弊。有一件事是清楚的:除了实现推送通知之外,您无法在不发送请求的情况下从外部接收数据。即使应用程序未运行,实施Easy APNS也会为您的应用提供数据。另一方面,使用计时器,将是最快/最简单的方式。你决定。干杯!