Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 从Rest Web服务获取PickerData数据_Arrays_Json_Swift_Web Services_Uipickerview - Fatal编程技术网

Arrays 从Rest Web服务获取PickerData数据

Arrays 从Rest Web服务获取PickerData数据,arrays,json,swift,web-services,uipickerview,Arrays,Json,Swift,Web Services,Uipickerview,我从web服务获取数据,当我想在Json解析区之外使用它时,我的pickerData数组不保存值。 这是我的密码 var pickerData: [String] = [String]() var mag : String! override func viewDidLoad() { super.viewDidLoad() NomMAG.alpha = 0 // \(detectionString) let str = "http:

我从web服务获取数据,当我想在Json解析区之外使用它时,我的pickerData数组不保存值。 这是我的密码

var pickerData: [String] = [String]()
var mag : String!
override func viewDidLoad() {
    super.viewDidLoad()
    NomMAG.alpha = 0








        // \(detectionString)
        let str = "http://vps43623.ovh.net/yamoinscher/api/getAllMag"
        let url = NSURL(string: str)!

        let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in

            if let urlContent = data {

                do {
                    let jsonObject = try NSJSONSerialization.JSONObjectWithData(urlContent, options: [])
                    if let jsonResult = jsonObject as? [String:AnyObject] {
                        if let Pick = jsonResult["magasin"] as? [[String:String]] {
                            for categorie in Pick  {
                               self.mag = categorie["libelle"]!
                                    self.pickerData.append(magasin)

                                    //self.pickerData = [(self.produits[0].magasin)]


                            }
                            print(self.pickerData)
                            dispatch_async(dispatch_get_main_queue()) {
                                self.picker1.reloadInputViews()
                               // print(self.produits.count)
                            }
                        }
                    }
                } catch {
                    print("JSON serialization failed", error)
                }
            } else if let connectionError = error {
                print("connection error", connectionError)
            }

        }      
        task.resume()


    //print(produits.count)
    //pickerData = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "autre"]
    //print(self.pickerData)
    self.picker1.delegate = self

    self.picker1.dataSource = self


    // Do any additional setup after loading the view.
}


override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// The number of columns of data
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
    return 1
}

// The number of rows of data
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return self.pickerData.count
}

// The data to return for the row and component (column) that's being passed in


 func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

    return self.pickerData[row]
}


func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {



    if pickerData[row] == "autre"
    {
        //print(row)

        NomMAG.alpha = 1
    }
    else
    {
        //print(row.description)
        NomMAG.alpha = 0
    }



}

我想用我从JsonParsing中获得的数据完整地获取PickerView,并且PickerData数组在Interface Builder中的picker视图的Json

连接
委托
数据源
的代码块之外为空,并用

  var pickerData = [String]()

  override func viewDidLoad() {
    super.viewDidLoad()

    let str = "http://vps43623.ovh.net/yamoinscher/api/getAllMag"
    let url = NSURL(string: str)!

    let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in
      if let urlContent = data {
        do {
          let jsonObject = try NSJSONSerialization.JSONObjectWithData(urlContent, options: [])
          if let jsonResult = jsonObject as? [String:AnyObject],
            magasin = jsonResult["magasin"] as? [[String:String]] {
            // filter valid items, map them to an array and filter empty strings
            self.pickerData = magasin.filter { $0["libelle"] != nil }.map { $0["libelle"]! }.filter { !$0.isEmpty}
          }
          dispatch_async(dispatch_get_main_queue()) {
            self.picker1.reloadAllComponents()
          }
        } catch {
          print("JSON serialization failed", error)
        }
      } else if let connectionError = error {
        print("connection error", connectionError)
      }

    }
    task.resume()
  }
您必须添加
NomMAG