NSObjectのサブクラスを作成しました。これは、NSXMLParserを初期化し、XMLを解析してから、サブクラスに渡すデリゲートのメソッドを呼び出します。
イニシャライザー:
- (id)initWithData:(NSData *)data interestingKeys:(NSSet *)interestingKeys_
itemElm:(NSString *)itemElement_ delegate:(id <XDelegate>) delegate_
{
if((self = [super init])) {
self.delegate = delegate_;
//create parser and start parsing
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
parser.delegate = self;
[parser parse];
[parser release];
}
return self;
}
デリゲートのメソッドを呼び出す:
- (void) parserDidEndDocument:(NSXMLParser *)parser
{
//calls parserDidFinishParsingData: in delegate class
[self.delegate parserDidFinishParsingData:self.arrayOfDictionaries];
}
次に、解析されたデータ(に格納されているself.arrayOfDictionaries
)を取得して、デリゲートクラスで使用できます。
問題は、次のログメッセージが表示されることです。
[Switching to thread 11523]
[Switching to thread 11523]
NSXMLParserアクティビティをNSObjectサブクラスに配置することで、自分自身に問題を引き起こしていますか?
DDXMLParser.h: https ://gist.github.com/762235 DDXMLParser.m: https :
//gist.github.com/762236 ユースケース:https ://gist.github.com/762237
乾杯