我正在尝试将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
)中收到错误:
int yPref = [[prefYsegmentedControl.selectedSegmentIndex] integerValue];
错误是:Expected Identifier
我迷失在这里。不知道它在说什么。
谢谢。
答案 0 :(得分:0)
您有一个语法错误和两个语义错误。
语法错误:
[prefYsegmentedControl.selectedSegmentIndex]
选择方法调用或点表示法之一来访问属性。使用
[prefYsegmentedControl selectedSegmentIndex]
或
prefYsegmentedControl.selectedSegmentIndex
第一个语义错误:
prefYsegmentedControl.selectedSegmentIndex
已经是整数。无需致电integerValue
。 (无论如何,你不能向基本类型发送消息。这不是Smalltalk。)
第二个语义错误:您实际上并未将索引存储在NSUserDefaults
中。插入
[defaults setInteger:yPref forKey:@"yPref"];
在同步用户默认值之前。
答案 1 :(得分:0)
您正在将该属性视为对象。不是。只需使用
int yPref = prefYSegmentedControl.selectedSegmentIndex;