Parse.com当前用户if语句

时间:2014-09-22 09:23:09

标签: ios parse-platform

我正在使用Parse作为我的应用程序的移动后端。我在我的'用户'数据表(用户类)'教练'和'俱乐部'中添加了2个布尔列,基本上说明他们是教练还是俱乐部。在登录期间需要根据这些变量的布尔值执行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];
                                    }
                                }];

1 个答案:

答案 0 :(得分:0)

您的代码存在两个问题。第一个是您使用赋值运算符=,第二个是您使用点符号作为Parse对象。

你有什么:

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"]){ /* ... */ }