は、私はちょうどNSXMLParserを初期化NSObjectののサブクラスを作成して、XMLを解析し、その後、私はサブクラスに渡すデリゲートのメソッドを呼び出します:NSXMLParser NSObjectの中サブクラスの切り替えのスレッド
初期化子:
- (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;
}
デリゲートで
Callメソッド:
- (void) parserDidEndDocument:(NSXMLParser *)parser
{
//calls parserDidFinishParsingData: in delegate class
[self.delegate parserDidFinishParsingData:self.arrayOfDictionaries];
}
これで、解析されたデータ(self.arrayOfDictionaries
に格納されています)を受け取り、デリゲートクラスで使用できます。
問題は、私は次のログメッセージを取得し、です:
[Switching to thread 11523]
[Switching to thread 11523]
は、私はNSObjectのサブクラスにNSXMLParser活動を置くことによって、自分のために問題を引き起こすのですか?
DDXMLParser.h:https://gist.github.com/762235
DDXMLParser.m:https://gist.github.com/762236
ユースケース:https://gist.github.com/762237
乾杯他はあなたからそれを使用することになり
おそらく私の懸念を適切に知らない/表現していないでしょう。私のアプリはかなりクラッシュしていたので、私はパースのタスクを実行するのに適したNSOperationをサブクラス化するつもりです。 Lazy Table Imagesアプリには、解析操作クラスの例が含まれています。 – dianovich