0

私の中で

- (void)parser:(NSXMLParser *)parser
        didStartElement:(NSString *)elementName
           namespaceURI:(NSString *)namespaceURI
          qualifiedName:(NSString *)qualifiedName
             attributes:(NSDictionary *)attributeDict {
          // ...
}

XML 属性の 1 つが、plist に保存した値と等しいかどうかを確認します。そうでない場合は、正常に実行して最新の情報を取得してください。すべてのデータを再度取得する処理時間を無駄にしたくありませんが、同じ値であれば。以下のようなコードがある場合、値が同じ場合に解析プロセスを終了するにはどうすればよいですか?

if (lastUpdated == [attributeDict valueForKey:@"last_updated"]) {
     // Terminate the xml parsing because data is up to date
}
4

3 に答える 3

3

使用できます[parser abortParsing]が、これは「このデータが必要ない」状況ではなく XML エラーを対象としてparser:parseErrorOcurred:おり、私の経験では、メソッドが数回呼び出される可能性があることに注意してください。

于 2012-07-13T17:05:04.450 に答える
1

[parser abortParsing] を呼び出して、現在のポイントから解析をキャンセルします。

于 2012-07-13T17:06:47.553 に答える
1

iOS 6.0 にはバグがあり、abortParsing はパーサーをキャンセルしますが、parser:parseErrorOccurred を呼び出さず、'parserError' を設定しません。

于 2012-10-09T08:48:01.747 に答える