Mac OS X 10.11.3 El-Capitan,XCode 7.2.1,Alamofire 3.5.1 via Carthage
试图获得我能想到的最基本的Alamofire示例。虽然经验丰富的开发人员我是XCode的新手,所以我确信我只是缺少一些基本的东西。我设置了一个新项目,通过Carthage添加了Alamofire,在main.swift中添加了一个简单的get请求。代码构建和运行,但我的响应闭包没有被调用。我添加了睡眠尝试,并确保等待足够长的时间来调用闭包。我有Little Snitch,看到我的项目正在调用httpbin.org。我尝试了各种响应*方法。但关闭从未运行,我错过了什么?
import Alamofire
print("Start")
var x : String = "main"
Alamofire.request(.GET, "https://httpbin.org/get")
.responseString {resp in
print("in response handler")
print("response \(resp)")
x = "response"
}
sleep(90)
print("End \(x)")
Start
End main
答案 0 :(得分:2)
我认为Alamofire默认调用主队列中的响应处理程序,因此如果您在主队列/线程中发出请求,睡眠和打印,则在应用程序终止之前不会从主队列执行responseString。不知道.responseString,但是.response你可以指定队列:
public func response<T: ResponseSerializerType>(
queue queue: dispatch_queue_t? = nil,
responseSerializer: T,
completionHandler: Response<T.SerializedObject, T.ErrorObject> -> Void)
-> Self
答案 1 :(得分:0)