2016-03-16 2 views
0

Я пытаюсь установить указатель с объекта в «Классы» на объект в «Школы». Когда я делаю это, я получаю эту ошибку:Настройка указателя parse для класса, отличного от PFUser

invalid type for key school, expected *Schools, but got string (Code: 111, Version: 1.12.0)

Я знаю, что ошибка говорит, что он ожидает, что указатель на класс «школы», но получил строку вместо. Вот мой код:

let schoolObjectIdQuery = PFQuery(className:"Schools") 
     schoolObjectIdQuery.whereKey("school_name", equalTo: "\(PFUser.currentUser()!.objectForKey("school_name")!)") 

     let query = PFQuery.orQueryWithSubqueries([schoolObjectIdQuery]) 

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

      if let objects = results { 

       for object in objects { 

        let schoolObjectId = object.objectId! 

        ////////////////// 

        let classInfo = PFObject(className: "Classes") 

        classInfo.setObject(className!, forKey: "class_name") 
        classInfo.setObject(teacherName!, forKey: "teacher_name") 
        classInfo["school"] = schoolObjectId 

        classInfo.saveInBackgroundWithBlock({ (success:Bool, error:NSError?) -> Void in 

         if error != nil { 

          spinningActivity.hideAnimated(true) 

          self.displayAlert("Error", message: error!.localizedDescription) 

          print(error?.localizedDescription)   
         } 
         else if success { 

          spinningActivity.hideAnimated(true) 

          self.dismissViewControllerAnimated(true, completion: nil)   
         } 
         else { 

          self.displayAlert("Something Went Wrong", message: "Please try again")    
         } 
        }) 
       } 
      } 
     }) 

Приведенный выше код запрашивает для ObjectId правильных «школ» объекта, а затем данные настройки в другой класс, «Классы», для которой мне нужно ObjectId от «Школы» объект. * Я знаю, что моя обработка ошибок еще не настроена должным образом

Если я заменю classInfo["school"] = schoolObjectId на classInfo["school"] = PFUser.currentUser(), указатель будет отправлен на Parse без проблем. Как установить указатель на «school_name» в классе «Школы» как указатель, а не строку?

Заранее благодарим за помощь!

ответ

1

Указатель в парсе - это не только объект. Вы должны инвертировать ParseObject, а не только objectId.

PFUser.currentUser() возвращает объект пользовательского анализа. Вот почему это работает.

попробовать это:

classInfo["school"] = object 
+0

Спасибо! Это именно то, что я придумал после публикации. Я попробую позже и отметьте это как правильный ответ –

Смежные вопросы