如何在Alamofire中设置变量并获得另一个函数

时间:2016-03-11 15:32:27

标签: ios swift alamofire

import Alamofire
import SwiftyJson

public class MyExample{

var myarray=[String]()

func onCreate(){
Alamofire.request(.GET, "https://myurl.org/get", ).responseJSON { response in
            let json = JSON(value)
            let list: Array<JSON> = json.arrayValue
for element in list{
  myarray.append(element["name"].stringValue)
         }

}
func getMyArray(){return myarray}
}

1 个答案:

答案 0 :(得分:0)

好的,我有同样的问题但是在目标C中。

问题是你的数组在返回后填充。如果你知道为什么要使用debug。

解决方案是使用信号量。

import Alamofire
import SwiftyJson

public class MyExample{

var myarray=[String]()
//create a semaphore and init it
func onCreate(){
Alamofire.request(.GET, "https://myurl.org/get", ).responseJSON { response in
            let json = JSON(value)
            let list: Array<JSON> = json.arrayValue
for element in list{
  myarray.append(element["name"].stringValue)
// use the semaphore
 }

    }
//use function to wait until the semaphore is done by the other thread.
    func getMyArray(){return myarray}
    }

您可以在google上找到有关信号量的许多信息。 如果它能帮助你投票给我