2015-04-24 30 views
1

我有一个使用Parse.com作为后端的简单游戏。我最初将一个Game对象的用户值存储为字符串,并相应地构造了查询和if语句(我是编程新手)。然后我了解到,正确的做法是将用户存储为指向客户表的指针对象。如何比较Swift中的指针分析对象?

我努力让我的if语句正常工作。我想检查当前用户(PFUser.currentUser())等于我已经存储在游戏桌的用户之一:

//continue an active game that already exists with the user 
        if results != nil{ 
         println(results) 

          //continue existing game 
          for result in results { 

           var user1 = result["user1"] as PFUser 
           var user2 = result["user2"] as PFUser 
           var round = result["round"] as Int 
           var turn = result["turn"] as PFUser 

           //continue game if current user is user1 
           if PFUser.currentUser() == user1 { 

当我通过我的断点执行代码,该if PFUser.currentUser() == user1声明即使声明为真(用户1确实是当前用户的同一用户),也会被跳过。如何正确比较user1指针对象与currentUser?

谢谢!

+1

尝试:PFUser.currentUser()== OBJECTID USER1 .objectId? – mattdaw

+0

查看:http://nshipster.com/equality/了解更多背景。 – mattdaw

+0

工作!非常感谢!请务必添加答案,我将其标记为解决方案 – winston

回答

1

PFUser不成立,以支持这样的平等,但它看起来就像比较的ObjectID会做正确的事,你的情况:

if PFUser.currentUser().objectId == user1.objectId