2015-05-20 4 views
0

Я пытаюсь сделать чат-приложение, поэтому я почти закончу свой вокинг. Но я не знаю, как получить мои данные от разбора до моего кода. Я попытался один раз, но он не работает, возникает ошибка, когда тип «query.findObjectsInBackgroundWithBlock {(objects: [AnyObject] !, error: NSError!) -> Void in", что я хочу знать, как я собираюсь исправить Эта проблема.Как получить данные с сервера анализа?

@IBOutlet var chatTextField: UITextField! 

    @IBOutlet var DockHight: NSLayoutConstraint! 

    @IBOutlet var SendButton: UIButton! 

    @IBOutlet var messageTableview: UITableView! 

    var messagesArray:[String] = [String]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view, typically from a nib. 
     self.messageTableview.delegate = self 
     self.messageTableview.dataSource = self 

     self.chatTextField.delegate = self 

     let tappGesture:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "tableViewTapped") 
     self.messageTableview.addGestureRecognizer(tappGesture) 

     //retrive 


    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


    @IBAction func SendButton(sender: UIButton) { 

     //send button is stoped 

     //end edding methode for the text 

     self.chatTextField.endEditing(true) 

     self.chatTextField.enabled = false 
     self.SendButton.enabled = false 


     //create a PFobject 

     var message = PFObject(className:"Message") 
     message["Text"] = "\(chatTextField.text)" 
     message.saveInBackgroundWithBlock { 
      (success: Bool, error: NSError?) -> Void in 
      if (success == true) { 
       NSLog("The Message has been sent") 
      } else { 
       NSLog(error!.description) 

      } 

     self.SendButton.enabled = true 
     self.chatTextField.enabled = true 
     } 
    } 

    func retrieveMessage() { 

     var query:PFQuery = PFQuery(className: "Message") 
     query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) -> Void in 

     } 
    } 




    func tableViewTapped(){ 

     self.chatTextField.endEditing(true) 
    } 

    //textfield deligate methode 
    func textFieldDidBeginEditing(textField: UITextField) { 

     self.view.layoutIfNeeded() 
     UIView.animateWithDuration(0.2, animations: { 

      self.DockHight.constant = 350 
      self.view.layoutIfNeeded() 

      }, completion: nil) 
    } 


    func textFieldDidEndEditing(textField: UITextField) { 

     self.view.layoutIfNeeded() 
     UIView.animateWithDuration(0.3, animations: { 

      self.DockHight.constant = 44 
      self.view.layoutIfNeeded() 

      }, completion: nil) 
    } 


    //makrk tableview delegate methode 

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

     let cell = self.messageTableview.dequeueReusableCellWithIdentifier("cell") as! UITableViewCell 

     cell.textLabel?.text = self.messagesArray[indexPath.row] 

     return cell 
    } 
    var window: UIWindow? 

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return messagesArray.count 
    } 

} 
+0

Что такое Ошибка? – milesper

+0

У вас все еще есть ошибка? где именно это? что такое сообщение об ошибке –

ответ

0

Вы должны использовать [PFObject]? вместо [AnyObject]!

2

Parse documentation показывает таким образом, чтобы получить данные:

query.findObjectsInBackgroundWithBlock { 
    (objects: [PFObject]?, error: NSError?) -> Void in 

     if error == nil { 

     // Do something with the found objects 
     if let objects = objects { 
      for object in objects { 
       print(object.objectId) 
      } 
     } 

     } else { 
     // Log details of the failure 
     print("Error: \(error!) \(error!.userInfo)") 
     } 
    } 

Проблема заключается в том, что вы используете objects: [AnyObject]! вместо objects: [PFObject]?

Редактировать: также вы можете написать, как этот (objects, error) -> Void in

0

Обновлено для Swift 3

How to retrieve data from parse?

Если вы хотите использовать findObjectsInBackgroundWithBlock

Например, вы можете написать это:

query.findObjectsInBackground { (objects, error) in 
    if let objects = objects { 
     for object in objects { 
      print(object.objectId) 
     } 
    } else { 
     NSLog("Error: \(error!)") 
    } 
} 
Смежные вопросы