所以我的_User
课程如下:
在followPeople列中,我保存了当前用户后跟的用户的objectIds。我的整个查询如下所示:
var data:NSMutableArray = NSMutableArray()
var followedPeople = [NSArray]()
func loadData() {
self.followedPeople.removeAll(keepCapacity: true)
self.data.removeAllObjects()
var usersQuery:PFQuery = PFUser.query()!
usersQuery.orderByAscending("createdAt")
usersQuery.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if error == nil {
if let objects = objects as? [PFObject] {
for object in objects {
if let user = object as? PFUser {
if user.objectId == PFUser.currentUser()?.objectId {
if object["followedPeople"] == nil {
println("nil value")
} else {
self.followedPeople.append(object.objectForKey("followedPeople")! as! NSArray)
println(self.followedPeople)
}
} else {
self.data.addObject(object)
println(self.data)
}
}
self.tableView.reloadData()
}
}
} else {
// Log details of the failure.
println("Error: \(error!) \(error!.userInfo!)")
}
}
}
我的问题是,我正在保存当前用户跟随的所有用户的objectIds,我想在tableView中使用那些objectIds,这样如果用户在NSArray
,那么跟随按钮的标题这些用户应该是“取消关注”,基本上我试图向用户显示他是否已经关注某人..我的tableView代码是:
let userData:PFObject = self.data.objectAtIndex(indexPath.row) as! PFObject
// Usernames and gender..
myCell.fullName.text = userData.objectForKey("fullName") as! String!
myCell.genderLabel.text = userData.objectForKey("gender") as! String!
myCell.userTypeLabel.text = userData.objectForKey("userType") as! String!
// Profile pictures..
let profilePics = userData.objectForKey("profilePicture") as! PFFile
profilePics.getDataInBackgroundWithBlock { (data, error) -> Void in
if let downloadedImage = UIImage(data: data!) {
myCell.dp.image = downloadedImage
}
}
// here i want to set the button title..like:
// if current user is following the user on the cell {
// myCell.followButton.setTitle("following", .normal)
// } else {
// myCell.followButton.setTitle("follow", .normal)
// }
myCell.createButton(self)
return myCell
答案 0 :(得分:0)
我认为你关心两个数组:(1)所有用户的数组,以及(2)当前用户后跟的用户数组。
查找找到所有用户。你找之后应该改变逻辑。只需将所有找到的用户放入data
数组。
在索引路径的行的单元格中,您有...
let userData:PFObject = self.data.objectAtIndex(indexPath.row) as! PFObject
要确定当前用户是否正在关注该用户,只需检查该用户的id是否是跟随的用户ID数组。在伪swift(我真的不说)...
var myFollowedUserIds = PFUser.currentUser["followedUsers"]
var userIsFollowed /* this is a bool */ myFollowedUserIds.containsObject(userData.objectId)
现在,使用userIsFollowed
配置单元格,例如......
var buttonTitle = userIsFollowed? "Follow" : "Unfollow"
您可以考虑通过保留指向实际跟随用户的指针数组来改进您的设计,而不是在followUsers列中保留字符串ID。一个好处是,当您获得当前用户时,可以急切地获取它们。