Ios Parse.com当前用户if语句

Ios Parse.com当前用户if语句,ios,parse-platform,Ios,Parse Platform,我正在使用Parse作为我的应用程序的移动后端。我在我的“用户”数据表(用户类)“coach”和“club”中添加了2个布尔列,基本上说明了它们是coach还是club。在登录期间,需要根据这些变量的布尔值执行if语句。我目前的代码如下: [PFUser logInWithUsernameInBackground:_usernameField.text password:_passwordField.text block:^(PFU

我正在使用Parse作为我的应用程序的移动后端。我在我的“用户”数据表(用户类)“coach”和“club”中添加了2个布尔列,基本上说明了它们是coach还是club。在登录期间,需要根据这些变量的布尔值执行if语句。我目前的代码如下:

[PFUser logInWithUsernameInBackground:_usernameField.text password:_passwordField.text
                                block:^(PFUser *user, NSError *error) {
                                    if (user) {

                                        if(user.coach = @YES){
                                            [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"coach"]; //sets yes for coach value

                                        }

                                        if(user.club = @YES){
                                          [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"club"]; //sets yes for club
                                        }

                                        UIStoryboard *sb = [UIStoryboard storyboardWithName:@"AthleteLoggedIn" bundle:nil];
                                        UISplitViewController *new = [sb instantiateInitialViewController];
                                        self.view.window.rootViewController = new;

                                    } else {
                                        NSString *errorString = [error userInfo][@"error"];
                                        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Oops" message:errorString delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                                        [alert show];
                                    }
                                }];

您的代码有两个问题。第一个是使用赋值运算符
=
,第二个是对解析对象使用点表示法

你所拥有的:

if(user.coach = @YES){ /* ... */ }
if(user.club = @YES){ /* ... */ }
正确的实施:

if([user objectForKey:@"coach"] == @YES){ /* ... */ }
if([user objectForKey:@"club"] == @YES){ /* ... */ }
可简化为:

if([user objectForKey:@"coach"]){ /* ... */ }
if([user objectForKey:@"club"]){ /* ... */ }

if(user.coach=@YES)
应该是
if(user.coach=@YES)
。同样适用于
用户俱乐部
。在您的语句中,您将
@YES
赋值给变量,然后计算变量的值(当然是
@YES
),以避免下次出现这种情况。如果(@YES==user.coach),您应该养成将常量放在比较的左侧的习惯。if(@YES=user.coach)会抛出一个语法错误。谢谢,正如您可能猜到的那样,我对Xcode很陌生,尽管我确实确定应该得到double=。非常感谢你,他对我的理解很有帮助。通过阅读Parse的文档,我不确定他们在哪里声明了关于变量的if语句。这非常清楚。再次感谢大家!