2016-04-14 6 views
0

Ich versuche, eine Datei von Parse herunterladen, aber ich bekomme einen schwerwiegenden Fehler: Absturz, es scheint, als ob die Variable der Nachricht Null ist. Ich habe versucht, Fehler zu beheben, und ich weiß, dass es eine leichte Verfehlung gibt, die ich einfach nicht sehe. Ich hoffe, die Gemeinschaft kann helfen, da ich neu bin schnell.Probleme mit nil optional mit parse

class InboxViewController: UITableViewController { 

    var messages: [PFObject] = [] 
    var selectedMessage: PFObject? 
    var moviePlayer: MPMoviePlayerController? 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    self.moviePlayer = MPMoviePlayerController() 

    let currentUser = PFUser.currentUser() 
    if currentUser != nil { 
     // Do stuff with the user 
     print("Current user: \(currentUser!.username)") 
    } else { 
    } 
} 

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 

    let query = PFQuery(className: "Messages") 
query.whereKey("recipientIds", equalTo: PFUser.currentUser()!.objectId!) 
    query.findObjectsInBackgroundWithBlock { 
     (objects : [PFObject]?, error: NSError?) -> Void in 

     if error == nil { 
      for object in objects! { 
      let messages = object["file"] as! PFFile 
       self.tableView.reloadData() 
     print("Retreived \(self.messages.count) messages") 
    } 
    } 
} 


} 

Der Absturzhaltepunkt steht am Anfang der Abfrage. Danke Gemeinde, eine andere Reihe von erfahrenen Augen hilft immer.

Antwort

0

Sie können sicher die Objekte mit auszupacken, wenn konstruieren lassen

if let objects = objects { 
    for object in objects 
     let messages = object["file"] as? PFFile 
     print(messages) 
     // or you can also safely unwarp here 
     // if let messages = object["file"] as? PFFile { 
     // print(message) 
     // } 
     self.tableView.reloadData() 
     print("Retreived \(self.messages.count) messages") 
} 
} 
+0

Vielen Dank für die schnelle Rückmeldung es funktionierte. – gilbert105

+0

Wenn dies für Sie funktioniert, bitte markieren Sie die Antwort angenommen. – Sahil