0
最近Alamofireを使用する際に問題が発生しました。ここで Alamofireを使用してhttpリクエストを送信するスウィフト
は私のコード LoginViewController.swiftあるclass LoginViewController: UIViewController {
@IBOutlet weak var name: UITextField!
@IBOutlet weak var email: UITextField!
@IBOutlet weak var password: UITextField!
let baseApi = BaseApi()
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func loginButton(_ sender: UIButton) {
let dict = ["name":name.text,"email":email.text,
"password":password.text]
print("api succeed1")
let result = baseApi.login(paras: dict as! [String : String])
print("api succeed2")
if result[0]["status"].string == "success" {
print("api succeed3")
present(UIStoryboard(name: "Main", bundle:
nil).instantiateViewController
(withIdentifier:"TabBarController")
as! TabBarController, animated: true, completion: nil)
}
}
BaseApi.swiftここ
class BaseApi{
func login(paras : [String:String]) -> JSON {
let url = URL(string: "http://127.0.0.1:8000/api/login")
let result = baseApi(url: url!,paras: paras)
print("BaseApi3333")
return result
}
func baseApi(url : URL,paras : [String:String]) -> JSON {
var json:JSON = []
let toke = getToken()
let parameters: Parameters = [
"name": paras["name"]!,
"email": paras["email"]!,
"password": paras["password"]!
]
let headers: HTTPHeaders = [
"Authorization": "Basic "+toke,
"Accept": "application/json"
]
Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON { response in
switch response.result {
case .success(let value):
json = JSON(value)
print("baseAp2222")
print(json)
case .failure(let error):
print(error)
}
}
print("baseApi111")
print(json)
return json
}
}
は、印刷(baseApi111)が出てくる理由は私の質問があり、ログ
api succeed1
baseApi111
[
]
BaseApi3333
api succeed2
baseAp2222
{
"status_code" : 200,
"status" : "success",
"data" : {
"token" : "xxxx"
}
}
ですprint( "baseAp2222")の前に、私はjsonを返す必要がありますが、excute命令のようです私はこの問題をどのように解決すべきですか?
あなたの意見は正しいです、私はここで新しいコーダーですので、簡単な例を教えてください。 – AlenLee
私はちょうど答えを編集した、あなたはあなたのAPIが何かを返すときに実行されるあなたのメソッドにコールバックを添付する必要があります.. –
おかげで、私はあなたの答えは正しいと信じていますが、私はそれを理解しようとしています..私が知る必要がある多くのもののように見えます.. – AlenLee