2012-03-21 7 views
0

それが呼び出され、私は認識されないセレクターエラーが発生します。Hpple実装/未認識セレクタ

//THIS ACTION SET TO RUN WITH THE PUSH OF A BUTTON 

- (IBAction)parseElements{ 

NSString *urlRequest = item.link; 

NSLog(@"urlRequest defined."); 

NSData *htmlData = [NSString stringWithContentsOfURL:[NSURL URLWithString: urlRequest] encoding:NSUTF8StringEncoding error:nil]; 

NSLog(@"htmlData created."); 

TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:htmlData]; 

NSLog(@"xpathParser made."); 

NSString *queriedItem = @"[@class='title']"; 

// THE APP FAILS WHILE TRYING TO EXECUTE THE NEXT LINE 

NSArray *elements = [xpathParser searchWithXPathQuery:queriedItem]; 

NSLog(@"elements searched."); 

TFHppleElement *element = [elements objectAtIndex:0]; 

NSLog(@"element recalled."); 

NSString *storyTitle = [element content]; 

NSLog(@"The title of the story is: %@", storyTitle); 

} 

NSLogs "はxpathParserがなさ" を介して表示するために管理し、私は、この認識されないセレクターメッセージ受信:

- [__ NSCFStringはバイト]:未認識セレクタインスタンスに送信0x6a52d60

*をキャッチされていない例外 'NSInvalidArgumentException'のためアプリを終了します、理由: ' - [__ NSCFString bytes]:インスタンスに送信された認識できないセレクタ0x6a52d60'

*まずスローコールスタック: (0x16c8052 0x1859d0a 0x16c9ced 0x162ef00 0x162ece2 0x495c 0x352e 0x2e3f 0x16c9ec9 0x1395c2 0x13955a 0x1deb76 0x1df03f 0x1de2fe 0x15ea30 0x15ec56 0x145384 0x138aa9 0x15b2fa9 0x169c1c5 0x1601022 0x15ff90a 0x15fedb4 0x15feccb 0x15b1879 0x15b193e 0x136a9b 0x2658 0x25b5) は例外

を投げると呼ばTERMINATE

私はそれが何か好きではないことを理解していますが、何が問題を引き起こしているのか、または適切な実行に必要な追加のフレームワーク/インポートですか?それが私のUIKit、viewcontroller.hとTFHpple.hは、そのファイルの唯一のインポートとして設定されています。ここで

答えて

1

はあなたの問題です:

NSData *htmlData = [NSString stringWithContentsOfURL:[NSURL URLWithString: urlRequest] encoding:NSUTF8StringEncoding error:nil]; 

TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:htmlData]; 

TFHppleinitWithHTMLDataNSDataを取ることになっています。 htmlDataNSDataと宣言していますが、割り当てようとしている実際のオブジェクトはNSStringです。

これはそれを修正する必要があります

NSData *htmlData = [NSData dataWithContentsOfURL:[NSURL URLWithString: urlRequest]]; 
+0

ありがとうございました!今私は別の領域でクラッシュし、脳のパズルは続きます。説明を気に入って、次回はNSDataを使うことを忘れないでください。 –

+0

私の喜び。上に貼り付けた残りのコードは上手く見えます。また、あなたが修正を提案した行は、警告を投げていたはずです。特にプログラムがクラッシュしている場合は、すべてのプログラムを修正することをお勧めします。 S.チェック・マークをクリックして私の答えを受け入れてください。 – yuji

関連する問題