Objective c 在NSUserDefaults中存储SegmentedControl段状态
我正在尝试将Objective c 在NSUserDefaults中存储SegmentedControl段状态,objective-c,nsuserdefaults,Objective C,Nsuserdefaults,我正在尝试将SegmentedControl的段索引存储在NSUserDefaults中 下面是加载首选项和首选项“保存”按钮的代码 - (void)viewDidLoad { [super viewDidLoad]; // Get the stored data before the view loads NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; int yPrefSegment
SegmentedControl
的段索引存储在NSUserDefaults
中
下面是加载首选项和首选项“保存”按钮的代码
- (void)viewDidLoad
{
[super viewDidLoad];
// Get the stored data before the view loads
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
int yPrefSegment = [defaults integerForKey:@"yPref"];
prefYsegmentedControl.selectedSegmentIndex = yPrefSegment;
}
- (IBAction)savePrefButton:(id)sender
{
int yPref = [[prefYsegmentedControl.selectedSegmentIndex] integerValue];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults synchronize];
NSLog(@"Data saved");
}
我在线路上(在savePrefButton
中)发现一个错误:
错误为:预期标识符
我在这里迷路了。不知道它在说什么
谢谢。您有一个语法错误和两个语义错误 语法错误:
[prefYsegmentedControl.selectedSegmentIndex]
选择访问属性的方法调用或点符号之一。使用其中一个
[prefYsegmentedControl selectedSegmentIndex]
或
第一个语义错误:
prefYsegmentedControl.selectedSegmentIndex
已是一个整数。无需对其调用integerValue
。(无论如何,您不能向基本类型发送消息。这不是Smalltalk。)
第二个语义错误:实际上没有将索引存储在NSUserDefaults
中。插入
[defaults setInteger:yPref forKey:@"yPref"];
在同步用户默认设置之前。将属性视为对象。不是。只用
int yPref = prefYSegmentedControl.selectedSegmentIndex;
谢谢H2CO3和ashevin。你们用不同的方式回答了我的问题。这是有效的。
[defaults setInteger:yPref forKey:@"yPref"];
int yPref = prefYSegmentedControl.selectedSegmentIndex;