私は xml http://weather.yahooapis.com/forecastrss?w=20070458&u=cを持っており、xml が更新されたときにデータも更新されるようにしたいと考えています。
ありがとう。
私は xml http://weather.yahooapis.com/forecastrss?w=20070458&u=cを持っており、xml が更新されたときにデータも更新されるようにしたいと考えています。
ありがとう。
ご覧のとおり、このXMLにはttl
ノードがあり、存続時間は60秒であることを示しています。したがって、定期的に(TTL値に応じて1分に1回)このURLを確認し、最新の状態に保つことができます。
次の 2 つのオプションがあります。
要件と能力に応じて、どちらにも長所と短所があります。明確なことが 1 つあります。プッシュ通知を実装する以外に、リクエストを送信せずに外部からデータを受信することはできません。Easy APNSを実装すると、アプリケーションが実行されていない場合でも、アプリにデータが提供されます。反対に、タイマーを使用すると、最速/最も簡単な方法になります。あなたが決める。乾杯!
xmlparserおよびNSXMLParser Class Referenceについては、このチュートリアルをお読みください。お役に立てると思います。
あなたはそれを投票することができます。
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 を実行します。