2017-01-04 1 views
0

Хорошо, поэтому я начинаю получать головную боль здесь ... Как только мой пользователь вписывается в мое приложение, я создаю новый класс при анализе с именем PFUser.Current()?.objectId! В этом класс i хранит всю информацию о пользователях, и пользователь может получить доступ к нему с любого устройства, так как его идентификатор пользователя никогда не изменяется. Одна из вещей, которые я храню в пользовательском классе массив, который приводит меня к вопросу: Я хочу, чтобы иметь возможность Acces этот массив, но единственный способ это может быть сделано с помощью:Как получить объектный идентификатор из класса на сервере разбора с помощью swift

var query = PFQuery(className: "\(PFUser.current()?.objectId!)") // Calling the user class 
    query.getObjectInBackground(withId: "") { (object: PFObject?, error: Error?) in 

     if error != nil { 
      print(error) 

     } else { 

      print(object) 
     } 
    } 

Проблема что я не знаю, как получить идентификатор объекта из класса UserObjectID.

Я нашел некоторый код, который позволяет мне получить мой список пользователей и добавлять имена пользователей и идентификаторы в массив:

var query = PFUser.query() 

    query?.findObjectsInBackground { (objects, error) in 

     if let users = objects { 

      for object in users { 

       if let user = object as? PFUser { 

       self.usernames.append(user.username!) 
       self.userids.append(user.objectId!) 

       } 
      } 
     } 
    } 

Как я могу сделать подобный поиск, и найти все ObjectIds в моих индивидуальных Класс_пользователь вместо класс superUser?

ответ

0

Вы действительно хотите создать новый класс для каждого пользователя? у вас будет огромное количество столов с 1 строкой в ​​каждом. Лучше всего добавить ваш массив в столбец текущей таблицы _User или создать новую таблицу и сохранить все пользовательские массивы в ней с помощью указателя.

Это, как говорится, если сделать и ваша новая таблица с именем из ObjectId пользователя, то вы должны быть в состоянии запросить этот класс с:

var userId: String = "" 

let userClassName = PFUser.current()!.objectId! 

let query = PFQuery(className: userClassName) 
// as there is only 1 row get the first 
query.getFirstObjectInBackground { (object, error) in 
    if error != nil || object == nil { 
     print("nothing here try again") 
    } else { 
     userId = object?.objectId 
    } 
} 

Если у вас есть таблица с большим количеством пользователей и указателем затем используйте следующие строки в качестве руководства

let userObjectId = PFUser.current()!.objectId! 
query.whereKey("yourPointerName", equalTo: PFObject(outDataWithClassName: "theClassYouWantToQuery", objectId: userObjectId)) 
Смежные вопросы