Tengo este código:

DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.default).async {
                let url = URL(string: itemImageURL )
                let data = try? Data(contentsOf: url!)
                if data != nil {
                    DispatchQueue.main.async{
                        cell.advImage!.image = UIImage(data: data!)
                    }
                }
            }

Me sale este mensaje de advertencia en Swift 3:

‘default’ ya no se utiliza en iOS 8.0: Uso de qos de atributos en lugar

en la primera línea.

No han encontrado todavía una solución. Tiene a nadie?

InformationsquelleAutor asheyla | 2016-09-30

4 Comentarios

  1. 64

    intentar qos: DispatchQoS.QoSClass.default en lugar de priority: DispatchQueue.GlobalQueuePriority.default

    DispatchQueue.global(qos: DispatchQoS.QoSClass.default).async {
                let url = URL(string: itemImageURL )
                let data = try? Data(contentsOf: url!)
                if data != nil {
                    DispatchQueue.main.async{
                        cell.advImage!.image = UIImage(data: data!)
                    }
                }
            }
    • funcionó! gracias!
    • Desde .default es el valor predeterminado, usted también puede utilizar: DispatchQueue.global().async { ... }
  2. 5

    Lugar de utilizar prioridad parámetro:

    DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.default).async {
     //...
    }

    uso qos parámetro que utiliza diferentes enum DispatchQoS.QoSClass.default pero usted también puede usar su valor enum como sólo .default:

    DispatchQueue.global(qos: .default).async {
     //...
    }

    Swift 3 ha traído muchos cambios en los MCD(Grand Central Dispatch).

  3. 1

    Si va a crear una propiedad mediante el Envío de Marco y actualización de la interfaz de usuario con alguna animación dentro de una función que podría ser algo como esto.

    let queue = DispatchQueue.global(qos: DispatchQoS.QoSClass.default)
        //dispatch_after says that it will send this animation every nsec
        queue.asyncAfter(deadline: when) {
            DispatchQueue.main.async(execute: {
                self.animate(withDuration: 0.5, animations: {
                    self.image.setWidth(35)
                    self.image.setHeight(35)
                })
            })
        }
  4. 1

    A continuación el código es probado para Swift 3.0 en Xcode 8.2.1

    DispatchQueue.global(qos: .background).async {
                let img2 = Downloader.downloadImageWithURL(imageURLs[1])
    
                //Background Thread
                DispatchQueue.main.async {
    
                    //Run UI Updates
                    self.imageView2.image = img2
                }
            }

    donde propiedad de QoS son :

    background, utility, `default`, userInitiated, userInteractive and unspecified

    Consulte este documento de apple para obtener más detalles.

Dejar respuesta

Please enter your comment!
Please enter your name here