XMLフィードを解析するときに問題が発生します。親ノードごとに約15の子ノードがあります。現在、stringbytrimmingchartersinsetを使用してすべてのノードを解析しています。次にNSCharactersetホワイトスペースとnewline文字セットを使用しています。そのようです:
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
currentElementValue = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
これは、1つを除くすべてのノードでうまく機能します。このノードでは、テキストをそのまま通過させたいと思います。この特定のノードを他のノードとは異なる方法で処理するようにifステートメントを設定しようとしたので、次のように更新しました。
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if ([testingString isEqualToString:@"AdoptionSummary"]) {
[currentElementValue appendString:string]; //This keeps breaking
}
else {
currentElementValue = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
ただし、エラーが発生します。
***キャッチされなかった例外'NSInvalidArgumentException'が原因でアプリを終了します、理由:'appendStringを使用して不変オブジェクトを変更しようとしました:'
このエラーは、stringbytrimmingchartersinsetとappendStringを組み合わせて使用した場合にのみ発生します。ただし、stringbytrimmingchartersinsetまたはappendStringのいずれかを単独で使用すると、エラーなしで解析されます。 currentElementValue
はNSMutableStringですが、なぜこのエラーがスローされるのですか?
このNSMutableStringを見てみましたが、appendStringはSIGABRTエラーを生成し、このエラー:'appendStringで不変オブジェクトを変更しようとしました:'-しかし、役に立ちません。
他の14個をトリミングしながら、「AdoptionSummary」に「そのまま」を追加したいのですが、何が間違っていますか?何か提案はありますか?
ありがとう!