0

ここまで作ってきました。httpヘッダーを使用してjson文字列リクエストを行うコードです。このコードを実行すると、エラーは発生しません。しかし、式の結果が未使用の警告が表示されます。この http ヘッダーを送信すると、Web サービスから応答が返ってくるはずです。

コード:

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSString *nid = @"";
    NSString *vocab = @"";
    NSString *inturl = @"testoverview";
    NSString *mail = @"chh@fbr.dk";
    NSString *md5pw = @"4d57e7ef1b7c3f431aca424764e9d786";

    NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                    nid, @"nid", 
                                    vocab, @"vocab",
                                    inturl, @"inturl",
                                    mail, @"mail",
                                    md5pw, @"md5pw",nil];
    NSError *error;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:NSJSONWritingPrettyPrinted error:&error];
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

    if (!jsonData) {
        NSLog(@"Got an error; %@", error);
            } else if(jsonData) {

                NSString *url = @"http://www.taenk.dk/services/mobile";
                NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLCacheStorageAllowed timeoutInterval:30.0];

                [request setValue:jsonString forHTTPHeaderField:@"X-FBR-App"];
                [[NSURLConnection alloc] initWithRequest:request delegate:self]; <-- this line triggers the warning: "Expression result unused"

                NSLog(@"jsonString %@", jsonString);

            }

誰でも私のために2つのことを明確にすることができます:

  1. これにより、Web サービスへのリクエストが送信されるとすぐに応答がトリガーされますか?
  2. はいの場合、この結果を印刷するにはどうすればよいですか?
4

1 に答える 1

1

結果を次のような変数に割り当てる必要があります

NSURLConnection *con = [[NSURLConnection alloc] initWithRequest:...

後で使用するため (例[con cancel];)

次に、少なくともデリゲート メソッドを実装する必要がありますconnection:didFailWithError:。クラス参照では、connection:didFinishLoading...もう表示されません。代わりにを使用できますか?そうすればsendSynchronousRequest:returningResponse:error:、結果が正か負かに関係なく表示されます。

これは私がデータを取得した方法です(このバージョンにはARCがありません):

- (void) connection :(NSURLConnection *)conn didReceiveData :(NSData *)data {
    NSString *msg = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
    [self checkAutoMailReply:msg];
    [msg release];
}

msg純粋な応答データが含まれ、ヘッダーなどは含まれません。

于 2012-04-19T13:15:24.050 に答える