0

我正在尝试将 a 的段索引存储SegmentedControlNSUserDefaults.

这是加载首选项和首选项“保存”按钮的代码。

- (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

我在这里迷路了。不知道它在说什么。

谢谢你。

4

2 回答 2

0

您有一个语法错误和两个语义错误。

语法错误:

[prefYsegmentedControl.selectedSegmentIndex]

选择一种方法调用或点表示法来访问属性。使用任一

[prefYsegmentedControl selectedSegmentIndex]

或者

prefYsegmentedControl.selectedSegmentIndex

第一个语义错误:

prefYsegmentedControl.selectedSegmentIndex

已经是一个整数。无需调用integerValue它。(无论如何,您都不能将消息发送到原始类型。这不是 Smalltalk。)

第二个语义错误:您实际上并未将索引存储在NSUserDefaults. 插入

[defaults setInteger:yPref forKey:@"yPref"];

在同步用户默认值之前。

于 2013-02-10T09:52:16.380 回答
0

您将属性视为对象。它不是。只需使用

int yPref = prefYSegmentedControl.selectedSegmentIndex;
于 2013-02-10T09:52:58.140 回答