2009-07-15 18 views
3

私は以下のコードを持っています。NSData to NSString truncated - iPhone

NSData *pageData = [NSURLConnection sendSynchronousRequest:request returningResponse:NULL error:NULL]; 
NSString *webpage = [[NSString alloc] initWithData:pageData encoding:NSUTF8StringEncoding]; 

これはほとんどのページで問題なく動作しますが、実際には長いものは切り捨てられます。

+0

返されたデータの長さのために切り捨てられますか([pageData length]と[webpage length]の両方を出力しましたか?)、または文字エンコーディングと関係がありますか? – drvdijk

+0

確かに、PageDataは117638で、ウェブページの長さは1173637です。 –

答えて

4

私は、これはあなたが(上記のリンクNSStringクラス参照から)探しているものであると信じて:

stringWithContentsOfURL:encoding:error: 

は、指定されたURLから のデータ読み出しによって作成された文字列を返すには、与えられたエンコーディングを使用して解釈しました。

(id)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error

パラメータ
URL読むにURL。

enc urlでのデータのエンコード。

エラーエラーが発生した場合、返品にはオブジェクトが含まれており、 に問題が記載されています。考えられるエラーに興味がない場合は NULLに渡すことができます。

戻り値
エンコーディング、ENCを使用してURLからデータを読み込むことによって作成された文字列。 URLを開くことができないか、エンコーディング エラーがある場合は、nilを返します。

3

は、このメソッドをチェックアウト:

http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/clm/NSString/stringWithContentsOfURL:encoding:error

あなただけの同期要求を使用している場合、これは問題ないはずです。

+0

こんにちはダン、 このセクションは該当するセクションですが、何度か検索しました。 –

+0

私がリンクしているセクション: stringWithContentsOfURL:encoding:error このメソッドは自動的にurlをダウンロードし、結果を文字列に配置します。 –