2015-12-05 3 views
0

В моем приложении пользователи могут выбрать три разных типа учетной записи при регистрации: Родительский пользователь, учетная запись семьи и учетная запись для детей. Я добавил столбец в базе данных пользователей в Parse с именем «isParent» и установил его как логическое. Теперь, в AppDelegate, я хочу проверить, истинна ли «isParent», поэтому я могу отобразить определенный ViewController. У меня есть следующий код:Как проверить, является ли результат PFQuery истинным в Swift

В AppDelegate.swift внутри didFinishLaunchingWithOptions:

if PFUser.currentUser() == nil { 
     // code to show sign up/login goes here 

     } 

    } else { 

     let query = PFUser.query() 
     query?.whereKey("username", equalTo: (PFUser.currentUser()?.username)!) 

     if query["isParent"] == true{ // error here. see below. 
      // parent view controller 
       print("this user is a parent") 

      } 
     } else{ 
      // non parent view controller 
      print("this user is not parent") 

     } 
    } 

Как вы читали выше, погрешность находится в пределах:

if query["isParent"] == true{ 

Я получаю следующее сообщение об ошибке:

Тип "PFQuery?" не имеет подстрочных индексов

Итак, я хочу, чтобы проверить, является ли значение «isParent» истинным, поэтому я могу открыть контроллер вида.

Как это исправить?

Спасибо.

ответ

0

Сначала вам нужно запустить запрос, чтобы получить данные, и после этого вы можете проверить свое состояние.

Вы можете использовать метод класса PFQuery для получения данных.

findObjectsInBackgroundWithBlock 
findObjectsInBackgroundWithTarget:selector: 
getFirstObject 
getFirstObjectInBackground ....etc. 

Вы можете выбрать метод ...