尝试使用 NSUserDefaults 存储数据时出现预期的表达式错误

expected expression error trying to store data with NSUserDefaults

我正在尝试使用 NSUserDefaults 来存储此代码中的开关是打开还是关闭:

[[NSUserDefaults standardUserDefaults] setBool:switch.on forKey:@"switchState"];

但我在 setBool:switch.on 位上收到错误 expected expression(错误标记位于开关的开头)。我该如何解决这个问题?

如果有帮助,它也在 IBAction 中:

- (IBAction)mathTaskSwitched:(id)sender
{
    [[NSUserDefaults standardUserDefaults] setBool:switch.on forKey:@"switchState"];
}

除了我尝试访问它的地方之外,我没有更多的代码来处理这个问题,但我认为这与错误无关。

谢谢

错误是因为switch是保留关键字。您正在使用它作为变量名。

更改您的变量名称,这将解决问题。

如果是实例变量,可以像self.switch.on一样使用。但更好的方法是不为您的 variables/constants.

使用任何保留关键字