Swift 中的网络请求问题 OC(AFNetworking) && Swift(Alamofire)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_19678579/article/details/77374896

一.使用 AFNetworking 第三方(OC 混编)

1. 导入 AFNetworking 第三方

2. 建立 Swift 与 OC 的桥接头文件

请点击前往,参考这篇文章建立桥接

3. 在操作的 VC 中实现代码

在 viewDidLoad 方法中


        let parameters = [
            "Id": "150529162646"
        ]


        WZYNetworkTool.shareInstance.request(requestType: .Get, url: kUrl, parameters: parameters, succeed: { (response) in
            guard let dicArray = response  else {
                return
            }
            print(dicArray)

        }) { (error) in

            guard let error = error else {
                return
            }
            print(error)
        }


    }
  • 1
    这里写图片描述

  • 2
    这里写图片描述

  • 3
    这里写图片描述

  • 4 可能这种理解会有bug
    这里写图片描述






二. 使用 Alamofire 第三方 ( Swift )

**前去下载最新的   Alamofire  第三方

part1: 导入工程:

1. 根据前面下载一个版本的 Alamofire 文件~

2. 新建一个工程~

3.拷贝 Alamofire 文件到我们新建的工程中~

4.添加文件到我们自己的工程中~

  
  

5.检查一下我们静态库有没有加到工程~没有的话我们手动添加一下~


结果应该是这样:

6.导入头文件import Alamofire检查是否配置错误~这里可能没有提示~直接敲完~编译一下就OK了~




part2: 使用 Alamofire

 func methodForSwift() -> Void {
        //        let urlStr = "\(SERVICE_URL)type=\(TOP)&key=\(APPKEY)"
        let kUrl = "http://community.alllu.com/?api-threadList"
        let parameters = [
            "pag": "2",
            "id": "144f248abf9789911c8ab1e903ec0f10"
        ]
        Alamofire.request(kUrl, method: .post, parameters: parameters).responseJSON { (returnResult) in
            print("secondMethod --> 参数 --> returnResult = \(returnResult.value as Any)")


            //字典接收 JSon 数据
           let dataDict = returnResult.value as! [String : Any] ;
            //从字典中根据 key 提取 value 为数组的数据
            let dataArr = dataDict["data"] as! [Any];
            for dic in dataArr{
                print("title 数值: ",dic);
                //从数组中提取字典
                let anDict = dic as! [String : Any];
                //从字典中提值
                let userFaceStr = anDict["userFace"] as! String ;
                print("提取单个图片=地址: ",userFaceStr);
                let picStr = anDict["userFace"] as! String ;
                let titleStr = anDict["title"] as! String ;

                self.titleArr.append(titleStr);
                self.picArr.append(picStr);
            }
//             print("title 数租: ",self.titleArr);
              //主线程刷新 UI
            DispatchQueue.main.async {
                 self.makeTable();
                 self.forInArrayHandel();
            }
        }
    }

参考于:笨笨编程





本文OC 与 Swift 的网络请求源码

猜你喜欢

转载自blog.csdn.net/qq_19678579/article/details/77374896