シンプルで明確な方法を使用して、値を保存できます。
あなたのインターフェース:
@interface FirstViewController : UIViewController
@property (nonatomic) int x;
@property (strong, nonatomic) IBOutlet UILabel *label;
- (IBAction)buttonPressed:(id)sender;
- (void)updateLabel;
@end
あなたのセッター:
- (void)setX:(int)x
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setInteger:x forKey:@"MyValue"];
[userDefaults synchronize];
}
あなたのゲッター:
- (int)x
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
return [userDefaults integerForKey:@"MyValue"];
}
あなたの行動:
- (IBAction)buttonPressed:(id)sender
{
[self updateLabel];
self.x++;
}
あなたのviewDidAppear:メソッド:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self updateLabel];
}
ラベルを更新する方法:
- (void)updateLabel
{
[self.label setText:[NSString stringWithFormat:@"%d", self.x]];
}
注:
- UserDefaults はアプリケーション全体のインスタンスにすぎないため、@"MyValue" は一意の文字列である必要があります。
- integerForKey は int 値のみを格納するメソッドです。
更新: 申し訳ありませんが、@ JoshHinmanのおかげで integerForKey が正しい方法です。