1

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:また、ファイルが正しく解析されているため、私のメソッドのコードはここでは役に立たないと思います。

ここで助けてくれてありがとう!

4

1 に答える 1

0

問題が消えたようです..うまくいきますが、そもそもなぜうまくいかなかったのかわかりません。

于 2012-11-20T15:38:21.213 に答える