2015-05-18 4 views
-1

Я использую Parse
У меня есть класс «Post» с полями. Класс публикации имеет поле, а один из них - «пользователь», связанный с классом «Пользователь»Получить все значения в поле

let query = PFQuery(className: "Post") 
// How to get all user in the post class 

Есть еще один способ, как ..

let query = PFQuery(className: "Post") 
let usersQuery = PFUser.query() 
usersQuery.whereKey("SELF", matchesKey: "user", inQuery: query) 

Но я знаю, что нет SELF ключевого слова

Objective C также хорошо

+1

Как вы связали свой класс post с классом пользователя ..? вы использовали PFRelation? Пожалуйста, дополните. – Tejvansh

+0

@TejvanshSinghChhabra yes Я связал его с типом «ссылка», а не ссылкой в ​​базе данных синтаксического анализа –

+0

Вы хотите получить те сообщения, которые содержат определенный пользователь в поле пользователя, не так ли? – Tejvansh

ответ

0

Учитывая this page in the Parse documentation, это должно выглядеть примерно так это:

let query = PFQuery(className: "Post") 
query.findObjectsInBackground() { posts, error in 
    if (!error) { 
    for post in posts { 
     let user = post["user"] 
     println("User: \(user)") 
    } 
    } else { 
    // Log details of the failure 
    println("Error: \(error), \(error.userInfo)") 
    } 
} 
+0

Я редактировал вопрос –

0

В Parse вы используете PFQuery для запроса базы данных.

В обратном вызове (асинхронно) вы получаете PFObject или массив PFObjects.

Как это сделать написано в their guide

Вот небольшой пример: Вы можете получить все свойства/поля независимо от вызова функции массива на PFObject.

var pfObject = PFObject() 
pfObject["yourcolumn"] as? String //Whatever you want 

В вашем случае PFUser будет решение

pfObject["yourusercolumn"] as? PFUser 

Для запроса вы используете PFQuery

Asynchronusly (предпочтительно):

var query = PFQuery(className:"GameScore") 
query.whereKey("playerName", equalTo:"Sean Plott") 
query.findObjectsInBackgroundWithBlock { 
    (objects: [AnyObject]?, error: NSError?) -> Void in 

    if error == nil { 
    // The find succeeded. 
    println("Successfully retrieved \(objects!.count) scores.") 
    // Do something with the found objects 
    if let objects = objects as? [PFObject] { 
     for object in objects { 
     println(object.objectId) 
     } 
    } 
    } else { 
    // Log details of the failure 
    println("Error: \(error!) \(error!.userInfo!)") 
    } 
} 

Synchronusly:

var query = PFQuery(className:"GameScore") 
var objects = query.findObjects() 
for object in objects { 
    // Do whatever you want with your pfobject 
} 

Асинхронные запросы более вероятны, потому что они не запускаются в потоке графического интерфейса, что делает ваш способ приложения более быстрым (в пользовательском интерфейсе).

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