0

のセグメント インデックスを に格納しようとしてい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

私はここで迷っています。それが何について話しているのかわからない。

ありがとうございました。

4

2 に答える 2

0

1 つの構文エラーと 2 つの意味論的エラーがあります。

構文エラー:

[prefYsegmentedControl.selectedSegmentIndex]

プロパティにアクセスするためのメソッド呼び出しまたはドット表記のいずれかを選択します。どちらかを使用

[prefYsegmentedControl selectedSegmentIndex]

また

prefYsegmentedControl.selectedSegmentIndex

最初の意味論的エラー:

prefYsegmentedControl.selectedSegmentIndex

はすでに整数です。それを呼び出す必要はありませんintegerValue。(とにかく、プリミティブ型にメッセージを送信することはできません。これは Smalltalk ではありません。)

2 番目のセマンティック エラー: 実際にはインデックスを に格納していませんNSUserDefaults。入れる

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

ユーザーのデフォルトを同期する前に。

于 2013-02-10T09:52:16.380 に答える
0

プロパティをオブジェクトであるかのように扱っています。そうではありません。使うだけ

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