从解析查询后设置跟随按钮标题

时间:2015-08-31 12:37:40

标签: swift uitableview parse-platform

所以我的_User课程如下:

<code>_User</code> class

在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

1 个答案:

答案 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。一个好处是,当您获得当前用户时,可以急切地获取它们。