之间的代码
{}等同于Objective-C中的代码块:这是异步执行的代码块。
您所犯的错误是您放置return语句的地方:当您启动请求时,
{}直到框架收到响应后,代码才执行,因此,
return到达该语句时,机会仍然没有响应。您可以简单地移动以下行:
return responsePackage
在闭包内部,因此
func仅在收到响应后才返回。这是一种简单的方法,但并不是真正理想的方法:您的代码将卡在等待答案的过程中。最好的方法也是使用闭包。这看起来像:
func get(apiEndPoint: NSString, completion: (response: ResponsePackage) -> ()) -> Bool { let responsePackage = ResponsePackage() Alamofire .request(.GET, apiEndPoint) .responseJSON {(request, response, JSON, error) in responsePackage.response = JSON responsePackage.success = true responsePackage.error = error completion(response: responsePackage) } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)