У меня есть приложение вроде instagram, где мне нужно установить отношения между пользователями. Для этого я решил использовать метод таблицы соединений. Это просто таблица с названием «Активность», в которой я создал строки «fromUser», «toUser» и строку типа «тип» типа активности, которая в этом случае имеет значение «followAction».Swift + Parse.com: как получить отношение пользователя с помощью таблицы соединений
Вот как я создал таблицу:
var activity = PFObject(className:"Activity")
let currentUser = PFUser.currentUser()
let follow : String = "followingAction"
activity.setObject(currentUser, forKey: "fromUser")
activity.setObject(user, forKey: "toUser") // user is a another PFUser in my app
activity.setObject(follow, forKey: "type")
activity.saveEventually()
Хорошо, теперь я хочу, чтобы извлечь все пользователи, которые им в настоящее время следующие (CurrentUser) и отображать их в Tableview
После док https://parse.com/docs/relations_guide#manytomany-jointables
Я сделал это, но только дал мне массив пользователей, которые содержат только объект userId, у меня не может быть адреса электронной почты, которые настроены в обычной таблице пользователя:
func loadUser() {
followingUserList.removeAllObjects()
let findUserObjectId = PFQuery(className: "Activity")
findUserObjectId.whereKey("fromUser", equalTo: userPassed)
findUserObjectId.whereKey("type", equalTo: "followingAction")
findUserObjectId.findObjectsInBackgroundWithBlock { (objects:[AnyObject]!, error:NSError!) -> Void in
if error == nil {
// The find succeeded.
println("succesfully loaded the fromUser in Activity class")
// Do something with the found objects
for object in objects {
let user : PFUser = object["toUser"] as PFUser
self.followingUserList.addObject(user)
println("User added to following user list : \(user)")
println("followingUserlist = \(self.followingUserList)")
self.tableView.reloadData()
} } else {
// Log details of the failure
println("error loadind user ")
println(error)
}
}
}
если я напечатать followingUserList, который является массивом, где я поставил неправдоподобные пользователей, вот что у меня есть:
followingUserlist = (
"<PFUser: 0x7d9b93c0, objectId: DQJihBpW5E, localId: (null)> {\n}"
)
Когда я сделать обычный запрос (PFUser.query()) для регулярного таблица пользователей, у меня есть более подробно:
например:
<PFUser: 0x7db5af80, objectId: niwftRrB5x, localId: (null)> {
backgroundImage = "<PFFile: 0x7db5f080>";
email = "[email protected]";
emailVerified = 0;
profileImage = "<PFFile: 0x7db62910>";
username = kiki;
}
Здесь мы можем видеть, у меня есть полный PFUser с ним по электронной почте, имя пользователя и т.д. и т.п.
Поскольку «fromRow» в моей таблице «Activity» является указателем на мою обычную таблицу пользователей, почему полученный результат в моем методе loadUser() не завершен?
является «followingUserList» массив вы инициализируетесь некоторые где в коде? – kareem