2014-12-15 16 views
12

Wcześniej dodałem! wymusić rozwijanie, aby usunąć "Opcjonalne()" ze zmiennej. Jestem w stanie to zrobić w danych zwróconych z Parse.comSwift! nie usuwa Opcjonalnie()

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

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

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

    } 

W powyższym przykładzie, cały stół z klasy Parse.com jest zwracana i drukowana na konsoli. Jednak

Opcjonalnie (...)

jest zwracana dla każdej linii, mimo że wymusić rozpakować za pomocą! na końcu

Czego mi brakuje?

(Uwaga: myObject to nazwa kolumny w bazie danych składni klasa)

+1

Jednym z możliwych wyjaśnień jest przechowywanie opcji w twoim obiekcie. Kiedy uzyskujesz do niego dostęp za pomocą obiektu [myObject], zostaje on zapakowany w innym opcjonalnym. Otrzymujesz Opcjonalnie (opcjonalnie (coś)). – MirekE

+0

Miałeś rację. Odwijałem obiekt do nowego obiektu, a następnie odwijałem nowy obiekt i Opcjonalnie zniknął. – ArchonLight

Odpowiedz

16

MirekE rację. Był to zagnieżdżony Opcjonalny (opcjonalny()).

naprawić I:

println(object[myObject]!!) 
+0

Witamy w przepełnieniu stosu. :-) Nie zapomnij oznaczyć własnej odpowiedzi jako zaakceptowanej (może to być okres oczekiwania ... nie jestem pewien). System karze cię za pytania, na które nie ma akceptowanej odpowiedzi. –

+0

Muszę poczekać 2 dni, aby zaakceptować – ArchonLight

+1

w Swift 2, wystarczy tylko jeden! na przykład. print (object [myObject]!), aby rozwiązać ten problem, dziękuję za odpowiedź! :) – ParisNakitaKejser

2

Trzeba tylko umieścić "!" na końcu zmiennej, w obszarze drukowania

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