0

そこで、フロント ページにタイトルと著者を入力できるアプリを用意しました。Enter キーを押すと、アプリの実際の機能が表示されます。NSUserDefaults でデータを保存したいので、入力ボタンをクリックすると保存され、次のビューに移動します次のビューに入るためにストーリーボードを既にセットアップしていますが、このコードを使用すると:

-(IBAction)enter:(id)sender {  
  titleString = [[NSString alloc] initWithFormat:[title text]];
  [title setText:titleString];

  NSUserDefaults *titleDefault = [NSUserDefaults standardUserDefaults];
  [titleDefault setObject:titleString forKey:@"stringkey"];
  authorString = [[NSString alloc] initWithFormat:[author text]];
  [title setText:authorString];

  NSUserDefaults *authorDefault = [NSUserDefaults standardUserDefaults];
  [authorDefault setObject:authorString forKey:@"stringkey2"];
}

ボタンを押すと必ずクラッシュします。私はすべての NSStrings などを定義しているので、何が問題なのかわかりません。私もそれをロードしています:

title.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"stringkey"];
author.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"stringkey2"];

viewdidloadの下で、なぜこれがうまくいかないのかについて助けてもらえますか?

4

2 に答える 2

1

メソッドを最適化するためだけに-enter:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:title.text forKey:@"stringkey"];
[defaults setObject:author.text forKey:@"stringkey2"];
[defaults synchronize]; // this will store them instantly!

クラッシュについて: 正確なクラッシュ ログを提供していただけますか? ボタンが不明なセレクターにリンクされている可能性があります...

于 2012-07-12T20:21:37.910 に答える
0

まず、これについていくつか質問があります:ここここ。最初に検索してみてください。少なくとも、見つけた重複した質問がうまくいかなかった理由を人々に知らせてください。

第二に、私はあなたがを追加することから利益を得るかもしれないと思いますsynchronize。これを使って:

titleString = [[NSString alloc] initWithFormat:[title text]];
[title setText:titleString];

 NSUserDefaults *titleDefault = [NSUserDefaults standardUserDefaults];
[titleDefault setObject:titleString forKey:@"stringkey"];

[titleDefault synchronize];

authorString = [[NSString alloc] initWithFormat:[author text]];
[author setText:authorString];

NSUserDefaults *authorDefault = [NSUserDefaults standardUserDefaults];
[authorDefault setObject:authorString forKey:@"stringkey2"];

[authorDefault synchronize];

[title setText:authorString];また、行をに変更しました[author setText:authorString];NSStringただし、テキストフィールドの値にsを割り当ててから、作成した文字列の値にテキストを戻す方法は少し冗長だと思います。必要がありません。とにかく、これが役立つことを願っています。

于 2012-07-12T20:18:44.400 に答える