私はXMLファイルを解析し、NSMutableString変数にテキストを設定しようとしています。これは、後でラベルのテキストを記入するためのものです。NSMutableParserでのNSMutableStringの問題
私の.hには次のものがあります(簡略化)。私.Mで
NSMutableString *contentsOfCurrentXMLProperty;
@property (nonatomic,retain) NSMutableString *contentsOfCurrentXMLProperty;
:私は私のアプリを実行すると
-(void) parseData {
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:myData];
[parser setDelegate:self];
[parser parse];
[parser release];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if ([elementName isEqualToString:@"Title"]) {
NSLog(@"FOUND TITLE!");
contentsOfCurrentXMLProperty = [NSMutableString setString:@""];
}
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"TITLE"]) {
myLabel.text = [contentsOfCurrentXMLProperty stringByReplacingOccurrencesOfString:@"[br]" withString:@"\n"];
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
[self.contentsOfCurrentXMLProperty appendString:string];
}
、データがダウンロードされ、正しく解析されます。私は、オブザーバーがイベントを再開したときに問題にぶつかります。 parseDataメソッドが呼び出され、次の行にトレースされたエラーが発生します。 "contentsOfCurrentXMLProperty = [NSMutableString setString:@" "]; "
NSMutableString変数を作成または初期化する適切な方法私が何度も何度も何度も何度も何度も何度も何度も何度も使用するのですかどこに/それを解放するのに最適な場所はどこですか?オブザーバがparseDataメソッドを起動したときに再び "contentsOfCurrentXMLProperty"を設定できるように、変数を本質的にクリアするにはどうすればよいですか?
これはトリックでした。私はdeallocで[contentsOfCurrentXMLProperty release]を行うだけですか? – SonnyBurnette
うん、それは正しいです。 –
こんにちは、私は似たような問題を抱えています.xmlドキュメントの全内容を取得して 'contentsOfCurrentXMLProperty'に追加するにはどうすればいいですか?私の問題はこれです:http://stackoverflow.com/questions/16702628/get-the-entire-xml-downloaded-data – Malloc