0
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"riderfinder.appspot.com/login"]];
    [request setHTTPMethod:@"POST"];
    [request setValue:@"text/plain" 
   forHTTPHeaderField:@"Content-type"];

    NSString *body = @"username=";
    [body stringByAppendingString:accountEntered];
    [body stringByAppendingString:@"&"];
    [body stringByAppendingString:@"password="];
    [body stringByAppendingString:passwordEntered];

    NSMutableData *data = [[NSMutableData data] initWithString:body];

    //Crashes everything with "SIGABRT" warning/error. Nothing else is said.
    [request setHTTPBody:data];

何がうまくいかないのか、誰かが何か知っていれば幸いです。Appleのデバッガーでクラッシュを引き起こした最後の行まで絞り込みました。どうもありがとうございました!

4

2 に答える 2

1

2 つのエラーがあります。

  1. bodyは追加されません。追加する [body stringByAppendingString:accountEntered]必要がありますbody=[body stringByAppendingString:accountEntered]

  2. NSMutableData *data = [[NSMutableData data] initWithString:body];使用は正しくありません。使用できますNSData *data=[body dataUsingEncoding:NSUTF8StringEncoding];

だから私はコードを変更しました:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"riderfinder.appspot.com/login"]];
[request setHTTPMethod:@"POST"];
[request setValue:@"text/plain" forHTTPHeaderField:@"Content-type"];

NSString *body = @"username=";
body=[body stringByAppendingString:accountEntered];
body=[body stringByAppendingString:@"&"];
body=[body stringByAppendingString:@"password="];
body=[body stringByAppendingString: passwordEntered];

//NSMutableData *data = [[NSMutableData data] initWithString:body];
NSData *data=[body dataUsingEncoding:NSUTF8StringEncoding];

[request setHTTPBody:data];
于 2012-09-10T01:48:41.330 に答える
0

まず、「accountEntered」と「passwordEntered」をnilではないようにする必要があります。それを行った場合は、どの行がクラッシュするかを正確に知るためにブレークポイントを設定する必要があります。通常、「SIGABRT」エラーは、より多くの、または認識されないセレクターを解放することを意味します。回答1のコードは正しいです。

于 2012-09-10T03:08:18.387 に答える