こんにちは!
私はXcodeで始まります(私はフランス語ですので、私の英語は完璧ではありません)、私はあなたの助けが必要です。
私のプロジェクトは、各学校の科目(5つ)のために私の平均のクラスを計算するアプリを作ることです。変数NSUserDefaults
を使用してマークを保存しましたが、動作しません。その理由はわかりません。ボタン保存データNSUserDefaultsが機能しない
これは、一人の被験者の学校のための私のViewController.h
(他の人は、唯一の変数の変更はかなり同じです)
#import <UIKit/UIKit.h>
@interface INF231ViewController : UIViewController{
IBOutlet UITextField *INF231CC1;
IBOutlet UITextField *INF231CC2;
IBOutlet UITextField *INF231ET1;
IBOutlet UITextField *INF231ET2;
IBOutlet UILabel *INF231moyenne;}
@property(nonatomic,retain) UITextField *INF231CC1;
@property(nonatomic,retain) UITextField *INF231CC2;
@property(nonatomic,retain) UITextField *INF231ET1;
@property(nonatomic,retain) UITextField *INF231ET2;
@property(nonatomic,retain) UILabel *INF231moyenne;
- (IBAction)INF231save:(id)sender;
- (IBAction)INF231calculer:(id)sender;
@end
を取り付け、これはViewController.mです:
#import "INF231ViewController.h"
@interface INF231ViewController()
@end
@implementation INF231ViewController
- (void)viewDidLoad {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
int INF231noteCC1 = [defaults integerForKey:@"INF231noteCC1"];
int INF231noteCC2 = [defaults integerForKey:@"INF231noteCC2"];
int INF231noteET1 = [defaults integerForKey:@"INF231noteET1"];
int INF231noteET2 = [defaults integerForKey:@"INF231noteET2"];
NSString *INF231noteCC1String = [NSString stringWithFormat:@"%i",INF231noteCC1];
NSString *INF231noteCC2String = [NSString stringWithFormat:@"%i",INF231noteCC2];
NSString *INF231noteET1String = [NSString stringWithFormat:@"%i",INF231noteET1];
NSString *INF231noteET2String = [NSString stringWithFormat:@"%i",INF231noteET2];
INF231CC1.text = INF231noteCC1String;
INF231CC2.text = INF231noteCC2String;
INF231ET1.text = INF231noteET1String;
INF231ET2.text = INF231noteET2String;
[super viewDidLoad];}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];}
- (IBAction)INF231save:(id)sender {
[INF231CC1 resignFirstResponder];
[INF231CC2 resignFirstResponder];
[INF231ET1 resignFirstResponder];
[INF231ET2 resignFirstResponder];
int INF231noteCC1 = [[INF231CC1 text] integerValue];
int INF231noteCC2 = [[INF231CC2 text] integerValue];
int INF231noteET1 = [[INF231ET1 text] integerValue];
int INF231noteET2 = [[INF231ET2 text] integerValue];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:INF231noteCC1 forKey:@"INF231noteCC1"];
[defaults setInteger:INF231noteCC2 forKey:@"INF231noteCC2"];
[defaults setInteger:INF231noteET1 forKey:@"INF231noteET1"];
[defaults setInteger:INF231noteET2 forKey:@"INF231noteET2"];
[defaults synchronize];
NSLog(@"Data saved");}
@end
私がプッシュすると「保存」ボタンはコンソールの「保存されたデータ」に書き込まれますが、キーボードは無効ではなく、データは消えています。
また、Main.Storyboard
の画像を置くと、よりよく見ることができます1。問題がどこにあるかを理解し、解決するのに役立つ他のものが必要な場合は、躊躇しないでください。
私は私の他の主題の学校の他ViewController
に保存する他のデータを持っているのに、私は「*デフォルト」の
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
に別の変数を使用する必要がある場合、私はあまりにも思っていました。
私に手伝ってくれてありがとう!
のXcodeのバージョン:7.3.1
のiOSのバージョン:9.3.3
'INF231noteCC1'をコンソールにログ出力すると、何が出力されますか? – FelixSFD
INF231noteCC1をコンソールにログする方法がわかりません。 – edajv
答えがうまくいけば、ログに記録する必要はありません。 – FelixSFD