Ios Alamofire singleton webservercall类错误
我正在使用Ios Alamofire singleton webservercall类错误,ios,objective-c,swift,swift3,swift2.3,Ios,Objective C,Swift,Swift3,Swift2.3,我正在使用swift3.0以及Alamofire框架进行一个项目,以连接我的webserver调用。基本上,我想使用一个我以前在swift2.3中使用过的单例类,在这里我声明了这个方法,然后在任何我想执行它的viewcontroller中,我调用下面的方法 APIManager.sharedInstance.login(username, password: password, completion: { (user,success) in if success
swift3.0
以及Alamofire
框架进行一个项目,以连接我的webserver调用。基本上,我想使用一个我以前在swift2.3
中使用过的单例类,在这里我声明了这个方法,然后在任何我想执行它的viewcontroller中,我调用下面的方法
APIManager.sharedInstance.login(username, password: password, completion: { (user,success) in
if success {
}
}) { (error) in
}
我的要求是让该代码在swift3.0
中工作,以便我可以继续工作。在此方面的帮助将不胜感激。我的singleton类的代码如下所示(该代码在swift 2.3
中,我希望它在3.0中)
这是我的经理在Swift 3.x中使用Alamofire 4.x和SwiftyJSON。我更喜欢类方法而不是单例
import UIKit
import Alamofire
import SwiftyJSON
class APIManager: NSObject {
class func apiGet(serviceName:String,parameters: [String:Any]?, completionHandler: @escaping (JSON?, NSError?) -> ()) {
Alamofire.request(serviceName, method: .get, parameters: parameters, encoding: URLEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in
switch(response.result) {
case .success(_):
if let data = response.result.value{
let json = JSON(data)
completionHandler(json,nil)
}
break
case .failure(_):
completionHandler(nil,response.result.error as NSError?)
break
}
}
}
class func apiPost(serviceName:String,parameters: [String:Any]?, completionHandler: @escaping (JSON?, NSError?) -> ()) {
Alamofire.request(serviceName, method: .post, parameters: parameters, encoding: URLEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in
switch(response.result) {
case .success(_):
if let data = response.result.value{
let json = JSON(data)
completionHandler(json,nil)
}
break
case .failure(_):
completionHandler(nil,response.result.error as NSError?)
break
}
}
}
}
然后在你想去的任何地方呼叫你的登录服务
let params = [
"userName":"abc",
"password":"abc"
]
APIManager.apiPost(serviceName: "yourLoginURL", parameters: params) { (json:JSON?, error:NSError?) in
if error != nil {
print(error?.localizedDescription)
return
}
print(json!)
}
因此,当问题出现在这里时,先生,正如我在我的身体中提到的,显然我的要求是将该代码转换为swift 3.0,因为它是用swift 2.3编写的。您的帮助将非常感谢我认为您可以将此代码用于SWIFT3没有问题,但请记住,您将从Alamorefire收到一些警告我认为您需要更新Alamorefire的POD(如果您使用Alamorefire的2.3 POD)我使用的是最新的POD,但我仍然收到一个错误:return manager.request(urlRequest)//API管理员没有成员“请求”@dragoneye请停止叫喊。谢谢。先生,它给了我一个错误,说不能加载'Alamorefire'的undeline模块清理和构建项目现在它说使用未声明的类型'JSON',这个类与模块加载有什么关系。这只是一个简单的帮助代码。使用检查项目设置Alamofire@danutha您必须
在控制器中导入快速JSON
。这些是你需要知道的基本情况。
import SwiftyJSON
let params = [
"userName":"abc",
"password":"abc"
]
APIManager.apiPost(serviceName: "yourLoginURL", parameters: params) { (json:JSON?, error:NSError?) in
if error != nil {
print(error?.localizedDescription)
return
}
print(json!)
}