すでに述べたように、HTTPを使用すると、作業がはるかに簡単になります。HTTPのように広範で広く使用されているプロトコルがすでにある場合は、車輪の再発明には使用できません。
AFNetworkingは、Webサーバーと通信するための優れたライブラリであり、JSONをエンコード/デコードする機能が組み込まれています。
AFNetworkingを使用してHTTP、JSON、およびRESTAPIを使用して通信する例。
NSMutableURLRequest *jsonRequest = [httpClient requestWithMethod:@"POST"
path:@"user/login"
parameters:[[NSDictionary alloc] initWithObjectsAndKeys:user, @"username", password, @"password", nil]];
//Make operation from request
AFJSONRequestOperation *jsonOperation =
[AFJSONRequestOperation JSONRequestOperationWithRequest:jsonRequest
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
//Block will be called when request is successful
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
//Block will be called if request has failed
}];
//Start request
[httpClient enqueueHTTPRequestOperation:jsonOperation];
非常に使いやすく、NSURLConnectionよりも簡単だと思います。ブロックを使用すると、より多くのイニシアチブになります。さらに、JSONのエンコード/デコードについて心配する必要はありません。JSONは、objective-cオブジェクトからJSONに(またはJSONからobjective-cオブジェクトに)直接エンコード/デコードされます。