Swift 中的網路請求問題 OC(AFNetworking) && Swift(Alamofire)

小毅哥哥發表於2017-08-18

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

1. 匯入 AFNetworking 第三方

Swift 中的網路請求問題 OC(AFNetworking) && Swift(Alamofire)

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. 新建一個工程~

Swift 中的網路請求問題 OC(AFNetworking) && Swift(Alamofire)

3.拷貝 Alamofire 檔案到我們新建的工程中~

Swift 中的網路請求問題 OC(AFNetworking) && Swift(Alamofire)

4.新增檔案到我們自己的工程中~

Swift 中的網路請求問題 OC(AFNetworking) && Swift(Alamofire)   
Swift 中的網路請求問題 OC(AFNetworking) && Swift(Alamofire)  Swift 中的網路請求問題 OC(AFNetworking) && Swift(Alamofire)

5.檢查一下我們靜態庫有沒有加到工程~沒有的話我們手動新增一下~

Swift 中的網路請求問題 OC(AFNetworking) && Swift(Alamofire)
結果應該是這樣:
Swift 中的網路請求問題 OC(AFNetworking) && Swift(Alamofire)

6.匯入標頭檔案import Alamofire檢查是否配置錯誤~這裡可能沒有提示~直接敲完~編譯一下就OK了~

Swift 中的網路請求問題 OC(AFNetworking) && Swift(Alamofire)




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 的網路請求原始碼

相關文章