So habe ich noch folgendes:Swift Alamofire SwiftyJSON Asynchronous/Synchronous Klassenmethoden
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.
}
}
Grundsätzlich würde ich die println können gerne anrufen („Vor Call“), dann eine Antwort von der Loginpassword erhalten () Methode und dann println ("Nach dem Anruf"). Dies ist, glaube ich, synchron, aber ich kann keinen Weg finden, es zum Laufen zu bringen, und das ganze Threads-Ding hat mir den Kopf verblüfft.
Ich möchte grundsätzlich in der Lage sein, zu sagen:
if i.loginPassword(){ // do some login stuff }else{ // do some error stuff }
Jede Hilfe oder Zeiger geschätzt.
Brilliant Dank geben würde! Gibt es eine Möglichkeit, dies mit Versprechungen zu verbinden, so dass es mit der Verschachtelung nicht so böse aussieht? Dies könnte während der anderen Hälfte der Anwendung möglicherweise 4-5 Ebenen tief gehen? –
Ich werde meine Antwort aktualisieren, um Ihnen einen anderen Weg zu zeigen ... –
Wissen Sie, wie die ursprüngliche Antwort in Swift 2 aussieht? Es hat für mich in swift 1.2 funktioniert, aber jetzt scheint der Fehler-Parameter entfernt zu sein. [Hier] (http://StackOverflow.com/Questions/32277680/Alamofire-Post-Request-with-Swift-2) ist meine Frage zu diesem – mattgabor