在Swift中使用AFNetworking接收响应

我是AFNetworking ,我正在尝试按照Raywenderlich的教程。 所以我有这个代码的JSONparsing,我很努力将其转换为Swift 。 我已经尝试了许多教程和StackOverflow的答案,但找不到一个很好的解释。

 - (IBAction)jsonTapped:(id)sender { // 1 NSString *string = [NSString stringWithFormat:@"%@weather.php?format=json", BaseURLString]; NSURL *url = [NSURL URLWithString:string]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; // 2 AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; operation.responseSerializer = [AFJSONResponseSerializer serializer]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { // 3 self.weather = (NSDictionary *)responseObject; self.title = @"JSON Retrieved"; [self.tableView reloadData]; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { // 4 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error Retrieving Weather" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alertView show]; }]; // 5 [operation start]; } 

那么,有没有人可以帮助我parsing与AFNetworking数据的基础知识?

问题是你为什么要在Swift使用Objc 。 有很多框架可以替代AFNetworking

事实上,同样的开发者已经开发了名为Alamofire的 Swift networking库

您可以使用该框架并获得相同的响应:

这是它的演示例子!

 func postWebserviceWithURL(strUrl: String, param: NSDictionary?, completionHandler: (NSDictionary?, NSError?) -> ()) -> (){ Alamofire.request(.POST, strUrl, parameters: param as? [String : AnyObject], encoding: ParameterEncoding.URL).responseJSON { response in switch response.result { case .Success(let data): let json = data as? NSDictionary completionHandler(json, nil) case .Failure(let error): completionHandler(nil, error) self.showSingleAlert("app_name", message: error.localizedDescription) } } } 

是的,您可以轻松地使用AFnetworking库来创buildBridging-Header.h文件,并将AFNetworking.h导入Bridging-Header.h文件

并尝试下面的代码到你的json方法

 let urlAsString = "<Your json URL in string>" let manager = AFHTTPRequestOperationManager() manager.POST( urlAsString, parameters: <Parameter>, success: { (operation: AFHTTPRequestOperation!, responseObject: AnyObject!) in print("JSON: " + responseObject.description) }, failure: { (operation: AFHTTPRequestOperation! error: NSError!) in } )