嗨,我有以下方法:迅速alamofire返回值是空
func getAlamoPlayers() ->[Player]{
//Get TeamID
let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
var TeamId:String = prefs.stringForKey("TEAMID")!
//create parameters for POST
let parameters =
["IdTeam": TeamId]
var result: NSArray?
//Request
Alamofire.request(.POST, "XXXXXX.php", parameters: parameters)
.responseJSON { (request, response, json, error) -> Void in
result = (json as NSArray)
// Make models from Json data
for (var i = 0; i < result?.count; i++) {
let dic: NSDictionary = result![i] as NSDictionary
//Create a team object
var p:Player = Player()
//Assign the values of each key value pair to the team object
p.PlayerID = dic["IdPlayer"] as String
p.PlayerName = dic["name"] as String
p.PlayerFkToTeam = dic["teams_IdTeam"] as String
//Add the team to the player array
self.players.append(p)
}
}
return self.players
}
所以,當我在另一個類調用這個方法,玩家陣列是空的!我如何處理alamofire的異步請求?我認爲該方法在請求完成之前返回播放器對象,或者我錯了嗎?
在此先感謝!
好的,我會明天測試這個。如果具有alamofire請求的函數是在一個單獨的類中,這有什麼關係? – 2015-03-31 21:34:28
這就是爲什麼你有'YOUR_NOTIFICATION_NAME',以便NSNotificationCenter知道你在說什麼通知。所以你想在同一個類中使用'YOUR_NOTIFICATION_NAME','.addObserver'和'YOUR_FUNCTION'。 '.postNotificationName'可以在其他地方被調用。一旦你發佈了你的通知,它就會用你放入選擇器的名字來調用這個函數。 – boidkan 2015-03-31 22:01:03
我已經通過上面的鏈接實施了您的解決方案。謝謝,現在它工作正常! – 2015-04-01 16:17:03