2011-01-02 18 views
0

は、私はちょうど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

乾杯他はあなたからそれを使用することになり

答えて

1

? C関数、ルートクラス、または別のルートクラスのサブクラスに加えて。

独自のカスタムCocoaオブジェクトからCocoaオブジェクトを作成して使用する際に、問題はありません。

ログメッセージはデバッガからのもので、NSXMLParserの使用とは関係ありません。デバッガがアプリケーションを中断しましたか?もしそうなら、それを見て、それが何を言うかを見てください。

+0

おそらく私の懸念を適切に知らない/表現していないでしょう。私のアプリはかなりクラッシュしていたので、私はパースのタスクを実行するのに適したNSOperationをサブクラス化するつもりです。 Lazy Table Imagesアプリには、解析操作クラスの例が含まれています。 – dianovich

関連する問題