Swift ! non rimuovere Opzionale()

Prima, ho aggiunto un ! per forzare un unwrap per rimuovere il “Opzionale()” da una variabile. Io non riesco a fare questo nei dati restituiti da Parse.com

    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]!, error: NSError!) -> Void in
        if error == nil {

            for object in objects {
                println(object[myObject]!)
            }

        } else {
            println("Error: \(error) \(error.userInfo!)")
        }

    }

Nell’esempio qui sopra, l’intera tabella Parse.com la classe è tornato e stampato sulla console. Tuttavia,

Opzionale(…)

restituito per ogni linea, anche se ho la forza di un unwrap utilizzando ! alla fine

Che cosa mi manca?

(Nota: myObject è il nome della Colonna nella Analisi di database di Classe)

  • Una possibile spiegazione è che si sta archiviando optionals in oggetto. Quando si accede, con oggetto[myObject], si arriva avvolto in un altro optional. Così si ottiene Opzionale(Opzionale(qualcosa)).
  • Hai ragione. Ho scartato l’oggetto in un oggetto nuovo e quindi da scartare l’oggetto nuovo e l’Opzionale è andato



2 Replies
  1. 16

    MirekE era giusto. E ‘ stato un nidificati Opzionale(Opzionale()).

    per risolvere I:

    println(object[myObject]!!)
    • Benvenuti a stack overflow. 🙂 Non dimenticare di segnalare la tua risposta come accettato (ci potrebbe essere un periodo di attesa… non sono sicuro). Il sistema che punisce per le domande che non hanno accettato di rispondere.
    • Devo aspettare 2 giorni per accettare
    • in Swift 2, è solo bisogno di uno ! es. stampa(object[myObject]!) per risolvere questo problema, grazie per la risposta!!! 🙂
    • Eccellente. Ho avuto di stampa(array[1][“demo”]!) ma il “opzionale(bla bla)” era ancora mostrando, fino a quando ho aggiunto un 2 ° punto esclamativo. Credo che fosse perché ero l’accesso a una matrice 2D.
    • Come faccio ad Aggiungere +10 di questa Risposta? 😉
  2. 2

    Devi solo mettere “!” alla fine della variabile, in area di stampa

    self.addressLabel.text = "\(subThoroughfare) \(p.thoroughfare!) \n \(p.subLocality!) \n \(p.subAdministrativeArea!) \n)".

Lascia un commento