Alamofire库没有响应Swift Package Manager

时间:2017-03-27 14:33:36

标签: swift alamofire swift-package-manager

我是Swift Package Manager的新手,我正在创建一个可执行文件,我需要使用REST API,因为我使用的是Alamofire,这就是我在包文件中添加它的方式

  let package = Package(
name: "CreateMenuTool",
dependencies: [
    .Package(url: "https://github.com/Alamofire/Alamofire.git", majorVersion: 4)
])

现在,当我创建请求时,我没有得到任何回复。但是,当我在XCode项目中使用它时,此方法会响应我。

Alamofire.request(urlString, method: .post, parameters: requestParams,  encoding: JSONEncoding.default, headers: ["X-Key" : webKey]).responseJSON { response in 
   print(response)
}

当我调试它时,我发现它永远不会进入方法,这意味着我既没有得到任何错误也没有任何响应。请告诉我我在哪里做错了?

1 个答案:

答案 0 :(得分:1)

Alamofire使用异步请求。如果您不创建RunLoop,您的代码将在响应从服务器到达之前很久就退出。在脚本结束之前,添加以下行:

RunLoop.main.run()

这将启动主RunLoop。您还可以将参数传递给run以使其运行指定的时间:

RunLoop.main.run(until: Date(timeIntervalSinceNow: 10))