如何从此查询中访问用户名

时间:2015-07-19 04:15:19

标签: swift parse-platform segue

1.如果当前用户是管理员角色或员工角色,我试图关闭我的segue。 2.问题似乎是在角色查询之后......我可以将这些角色名称列表打印到阵列中的控制台......但是我无法弄清楚如何查看当前用户是否是在该列表中,如果他们在该列表中,则相应地进行相应的..提前致谢!

   func checkEmployeeOrAdmin() {
 var roleQuery = PFRole.query()
roleQuery!.whereKey("name", equalTo: "admin")
roleQuery!.getFirstObjectInBackgroundWithBlock() { (roleObject: PFObject?, error) -> Void in


var adminRole = roleObject as! PFRole


    adminRole.users.query()?.findObjectsInBackgroundWithBlock({ (users, error:NSError?) -> Void in

    if let adminUsers = users as? [PFUser] {

    if adminUsers.usernames == PFUser.currentUser()?.username     {


     **//error is here....[PFUser] does not have a member named username...


      println("\(adminUsers)")


       self.performSegueWithIdentifier("toAdmin", sender: self)

    }else {

      println("nothingFound")
      self.performSegueWithIdentifier("toEmployee", sender: self)

1 个答案:

答案 0 :(得分:2)

您不应该通过用户名进行比较,您能保证它们始终是全球唯一的吗?您应该比较整个用户对象或objectId

您当前的代码正在尝试向Array询问其用户名,但它没有。相反,你应该迭代数组中的对象并分别询问每个对象然后进行比较。

您可以为此创建可重复使用的函数,或者您可以使用NSArray方法containsObject:来为您执行此操作。

使用swift数组,您还可以使用filter对数组中的每个项目运行逻辑测试并返回匹配项(然后检查匹配项的计数)。