TBXML を使用して、Web から .xml ファイルをダウンロードします。ファイルを正しく解析し、必要なすべてのデータを必要なときに取得します。
私の問題は、サーバー上のファイルを更新したのに、アプリで更新されなかったことです。アプリを削除して再インストールしたときにのみファイルが更新されました。
ある種のキャッシュか何かがありますか?
これは私がフェッチを注文する方法です:
-(void)getXML {
NSLog(@"Updating ATC data !");
// Create a success block to be called when the async request completes
TBXMLSuccessBlock successBlock = ^(TBXML *tbxmlDocument) {
// If TBXML found a root node, process element and iterate all children
if (tbxmlDocument.rootXMLElement)
[self traverseElement:tbxmlDocument.rootXMLElement];
};
// Create a failure block that gets called if something goes wrong
TBXMLFailureBlock failureBlock = ^(TBXML *tbxmlDocument, NSError * error) {
NSLog(@"Error! %@ %@", [error localizedDescription], [error userInfo]);
};
// Initialize TBXML with the URL of an XML doc. TBXML asynchronously loads and parses the file.
TBXML *tbxml = [[TBXML alloc] initWithURL: [NSURL URLWithString:@"http://www.mysite.com/myFile.xml"]
success: successBlock
failure: failureBlock];
}
そして、これは私がバックグラウンドでそれを呼び出す方法です:
[self performSelectorInBackground:@selector(getXML) withObject:Nil];
TBXML は非同期で動作するため、バックグラウンドで呼び出すのは無意味かもしれません。traverseElement:
また、ファイルが正しく解析されているため、私のメソッドのコードはここでは役に立たないと思います。
ここで助けてくれてありがとう!