我有这段代码在我的应用程序中用于登录。它曾经在swift 1中工作,但是当我把整个应用程序带到swift时它停止了工作。注意:代码编译没有错误,问题是它没有执行请求
@IBAction func signIn(sender: AnyObject) {
let body = NetUtils.buildLoginRequestBody(email: emailField.text!, password: passwordField.text!);
let manager = AFHTTPRequestOperationManager();
manager.requestSerializer = AFJSONRequestSerializer() as AFHTTPRequestSerializer;
manager.responseSerializer = AFJSONResponseSerializer();
barActivityIndicator.startAnimating();
setViewsEnabled(false);
manager.POST(LoginURL, parameters: body,
success: { (operation: AFHTTPRequestOperation!, responseObject: AnyObject!) in
NSLog("success code: %d", operation.response!.statusCode);
print(JSON(responseObject))
self.processUserData(JSON(responseObject));
self.barActivityIndicator.stopAnimating();
self.setViewsEnabled(true);
},
failure: { (operation: AFHTTPRequestOperation?, error: NSError!) in
NSLog("error: %@", error.localizedDescription);
self.barActivityIndicator.stopAnimating();
self.setViewsEnabled(true);
self.alert.show();
}
);
}
答案 0 :(得分:0)
我猜测没有执行请求你的意思是请求失败了吗?
我在您的代码中看到的一个问题是您没有持有对您的经理的引用,因此在该函数完成后,它可能会被解除分配,导致闭包返回时失败。
如果您持有这样的参考:
var manager = AFHTTPRequestOperationManager()
func signIn(sender: AnyObject) {
manager.requestSerializer = ...
}
这有用吗?