2
これまでにNSXMLパーサーを実行しましたが、何らかの理由で今度はparse
を呼び出すとNSXMLParserDelegateメソッドが呼び出されません。私はパースを呼ぶのはここNSXMLParserDelegateメソッドが呼び出されていない
です:
- (void)parseXMLFile:(NSString *)pathToFile
{
NSURL* xmlURL = [NSURL fileURLWithPath:pathToFile];
_parser = [[NSXMLParser alloc] initWithContentsOfURL:xmlURL];
[_parser setDelegate:self];
[_parser parse];
}
はここに私のデリゲートメソッドです:
#pragma mark NSXMLParserDelegate Methods
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"section"])
{
_currentSection = [[Section alloc] init];
_currentSection.name = [attributeDict valueForKey:@"title"];
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if([elementName isEqualToString:@"section"])
{
[_sections addObject:_currentSection];
[_currentSection release];
}
}
そして、ここでは私のヘッダーです:
@interface Engine : NSObject <NSCoding, NSXMLParserDelegate>
私のXMLファイルは、プロジェクトの一部であり、デリゲートメソッドが呼び出されない理由を理解できません。何か案は?
に変更しました。どのように呼び出されていないのですか?投稿しなかったコードやブレークポイントを使用していますか? –
私はブレークポイントとロギングの両方を使用しました。私はすべてのロギングコードを取り出しました。 – Thorax
'_parser'がnilではないと確信していますか? –