Vì vậy, tôi hiện có như sau:Swift Alamofire SwiftyJSON Asynchronous/Synchronous Phương Lớp
class ViewController: UIViewController {
class Identity{
let baseUrl = "superSecretURL"
var _username: String = ""
var _password: String = ""
var _apiKey: String = ""
init(){
}
init(username: String, apiKey: String){
_username = username
_apiKey = apiKey
}
init(username: String, password: String){
_username = username
_password = password
}
func loginPassword() -> String{
var loginJSON = ["auth": ["passwordCredentials": ["username": _username, "password": _password]]];
var returnJSON: String
request(.POST, baseUrl, parameters: loginJSON, encoding: .JSON)
.responseJSON { (request, response, data, error) in
if let anError = error
{
// got an error in getting the data, need to handle it
println("error calling POST on /posts")
println(error)
}
else if let data: AnyObject = data
{
// handle the results as JSON, without a bunch of nested if loops
let post = JSON(data)
// to make sure it posted, print the results
println("JSON Returned")
}
}
}
}
var i = Identity(username: "secretName", password: "complicatedPassword")
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
println("Before Call")
println("After Call")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Về cơ bản tôi muốn để có thể gọi println ("Trước Call") sau đó nhận được phản hồi từ loginPassword () và sau đó println ("After Call"). Điều này là tôi tin rằng đồng bộ nhưng tôi không thể tìm ra một cách để làm cho nó hoạt động và toàn bộ các chủ đề đã làm cho đầu tôi bối rối.
tôi về cơ bản muốn để có thể nói:
if i.loginPassword(){ // do some login stuff }else{ // do some error stuff }
Bất kỳ sự giúp đỡ hoặc gợi ý đánh giá cao.
Brilliant cảm ơn! Có cách nào để kết nối điều này với nhau bằng lời hứa để nó không trông khá khó chịu với việc lồng ghép không? Điều này có khả năng có thể nhận được 4-5 cấp độ sâu trong nửa kia của ứng dụng? –
Tôi sẽ cập nhật câu trả lời của mình để chỉ cho bạn một cách khác ... –
Bạn có biết câu trả lời ban đầu trông như thế nào trong Swift 2 không? Nó làm việc cho tôi trong nhanh chóng 1.2 nhưng bây giờ các thông số lỗi dường như được gỡ bỏ. [Ở đây] (http://stackoverflow.com/questions/32277680/alamofire-post-request-with-swift-2) là câu hỏi của tôi về điều này – mattgabor