1

免責事項:私はObj-CとiOS(5、ARC対応)の新機能です。安全キャスティング、しかしEXC_BAD_ACCESSとにかく

NSURLConnectionDelegateメソッドの次の実装は、内部でのNSLog呼び出しにEXC_BAD_ACCESSを作成する場合:私は見つけることができた限り、EXC_BAD_ACCESSはほとんどによる配分の問題、間違ったキャストに起因する

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { 

    NSLog(@"Response %@", response); 
    if([response isKindOfClass:[NSHTTPURLResponse class]]) 
    { 
     NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*) response; 
     NSLog(@"HTTP status code %@", [httpResponse statusCode]); 
    } 
} 

、悪いメモリ管理。それは当てはまりません(私は願っています)。事前に

おかげで、 クリス

ソリューション:OGの文字列をフォーマットでNoobieエラー。第二のNSLogを変更:

NSLog(@"HTTP status code %i", [httpResponse statusCode]); 

答えて

3

statusCodeNSObjectインスタンスにNSIntegerlong又はint)、ではないポインタを返します。

NSObjectの引数には、フォーマット指定子%@が使用されます。この問題は、statusCodeから返された整数値がオブジェクトへのポインタとして解釈/渡された後で、実行時にオブジェクトへのメッセージとしてメッセージされるか、または処理される場合に発生する可能性があります。オブジェクト引数が%@で出力されると、ロガーはオブジェクトの-[NSObject description]の結果を使用します。

今後、この問題を回避するには、コンパイラの警告を表示し、生成された問題を修正します。

+0

ありがとうございます! – Chris

+0

@Chris問題ありません! – justin

関連する問題