referencia ambigua a los estados 'jsonObject(con opciones:)

Estoy tratando de cargar imágenes desde el servidor en mi app de ios con la ayuda de la petición GET. Sin embargo, se muestra cierta ambigüedad. Puede alguien por favor ayuda. Aquí está el código de abajo`
importación de UIKit

clase ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource { @IBOutlet var MyCollectionView: UICollectionView!

var images : [String] = []

override func viewDidLoad() {
    super.viewDidLoad()

    loadImages()

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return images.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    //MyCollectionViewCell

    let myCell:MyCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "myCell", for: indexPath) as! MyCollectionViewCell



    DispatchQueue.global(qos: .background).async{

        let imageString = self.images[indexPath.row]
        let imageUrl = NSURL(string: imageString)
        let imageData = NSData(contentsOf: imageUrl! as URL)

        DispatchQueue.main.async {
            //if(imageData! = nil)
            //{

                myCell.myImageView.image = UIImage(data: imageData! as Data)

            //}//end of if
        }//end of DispatchQueue.main.async




    };//end of main dispatch

    return myCell
}

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    print("User tapped on image # \(indexPath.row)")
}

func loadImages()
{
        let startTime = NSDate.timeIntervalSinceReferenceDate

        var pageUrl = "Url is here"
    let myUrl = NSURL(string: pageUrl)
    let request = NSMutableURLRequest(url:myUrl! as URL)

    let task = URLSession.shared.dataTask(with: request as URLRequest){
            data, response, error in

        //If error displays any alert message
        if error != nil {

            var myAlert = UIAlertController(title: "Alert", message: error?.localizedDescription, preferredStyle: UIAlertControllerStyle.alert)

            let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil)

            myAlert.addAction(okAction)

            self.present(myAlert, animated: true, completion: nil)

            return


        }

        var err: NSError?

        if let usabledata = data{
        do{
        var jsonArray = try JSONSerialization.jsonObject(with: usabledata, options: .mutableContainers) as! [String:AnyObject]
            print(jsonArray)

        //conditional binding error here
        if let parseJSONArray = jsonArray {

            self.images = parseJSONArray as! [String]

            DispatchQueue.main.async(execute: {
                self.MyCollectionView.reloadData()

            })//end of dispatchQueue


        }//end of if
        }catch{
            print(error)

        }


    }
    }

    task.resume()

}

}

  • Respuesta seleccionada
    pkamb
    4 de mayo de 2019

    Intente esto :

    Reemplazar con su código

     if let usableData = data {
         do {
             var jsonArray = try JSONSerialization.jsonObject(with: usableData, options: .mutableContainers)  as! [String:AnyObject] 
             if let parseJSONArray = jsonArray as? [String] {
                 // parse array here
             }    
         } catch {
             print("JSON Processing Failed")
         }
     }