2011-12-16 4 views
5

あなたのNSURLConnectionがあなたにどのような応答を与えているかを確認するには?私は私のコードからの応答がこのように見えたなっていたものをURLを確認するテストができiOS5を前

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    returnString = [[[NSMutableString alloc] initWithData:responseData encoding: NSUTF8StringEncoding] autorelease]; 
    NSString * currentParseString = [NSString stringWithFormat:@"%@",connection]; 
    NSLog(@"Currently Parsing: %@",currentParseString); 
} 

私のログは、私はその後、テストするために使用することができ

を「Currently Parsing: http://www.myinfo.com/parser....」をプリントアウトだろうと異なるIFステートメントに送信します。今私の問題は、iOS5のconnectionはURLとして印刷されなくなったため、メモリブロックとして印刷されています<NSURLConnection: 0x6a6b6c0> IF文を書き直さなくてもいいので、URLとして印刷するにはどうしたらいいですか?

答えて

7

私はこのようなものでした:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    NSLog(@"%@",[connection currentRequest]); 
} 
+0

まさに私が探していたもの!ありがとう!興味深い。 – Louie

+1

ドキュメントで 'currentRequest'を見つけることができませんでした。アップルはそれで大丈夫だと確かめてください。 – XJones

+1

OK、 'NSURLConnection'ヘッダファイルに' currentRequest'と 'originalRequest'が見つかりました。彼らはiOS 5だけのように見えます。それはあなたのアプリのために大丈夫ならば、それのために行く。 – XJones

5

%@NSString形式に入れると、[object description]に置き換えられます。アップルは[connection description]が返すものを変更したに違いありません。どのような場合でも、特定のフォーマットになることが保証されていないので、それに頼るのは難しいです。

実装を変更する方法はいくつかあります。おそらく最速の線に沿ってNSURLConnectionの非常に単純なサブクラスを作成することです:

// MyNSURLConnection.h 
// code written assuming ARC 
@interface MyNSURLConnection : NSURLConnection 
@property (nonatomic, strong) NSURL *requestURL; 
@end 


// MyNSURLConnection.m 
// example override, you can override all the init/connection methods 
- (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate startImmediately:(BOOL)startImmediately { 
    self = [super initWithRequest:request delegate:delegate startImmediately:startImmediately; 
    if (self) { 
     self.requestURL = request.URL; 
    } 
    return self; 
} 


// in your MyNSURLConnectionDelegate controller 
- (void)connectionDidFinishLoading:(MyNSURLConnection *)connection { 
    returnString = [[[NSMutableString alloc] initWithData:responseData encoding: NSUTF8StringEncoding] autorelease]; 
    NSString * currentParseString = [NSString stringWithFormat:@"%@",connection.requestURL]; 
    NSLog(@"Currently Parsing: %@",currentParseString); 
    // rest of your code 
} 
+0

+1すばらしい答えXJones。私はMaulikと一緒に行きました。なぜなら、彼は私が探していたラインに沿ってもう少しだったからです。将来のプロジェクトではこの答えを念頭に置いていきますが、再度、感謝します! – Louie

+1

心配する必要はありません。お客様の要件を満たす最も簡単なソリューションは、道のりです。 – XJones

関連する問題