2

x在 ViewController.h 中有一个带有一个变量的视图控制器:

@property(nonatomic) int x;

是否可以设置最近的x固定值?例如,一个方法设置x为 5,当这个视图控制器被重新加载时,它的值x应该是 5 而不是现在的 0。

例如在 ViewController 中:

- (IBAction)btnPressed:(id)sender {
_x++;
}

每次点击按钮后 x 应该增加 >>> 0,1,2,3,4...(即使在重新启动应用程序后)

提前感谢您的所有回答。

4

1 回答 1

0

您可以使用简单明了的方法来存储您的价值。

你的界面

@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]];
}

备注

  1. @"MyValue" 必须是唯一的字符串,因为 UserDefaults 只是整个应用程序的实例。
  2. integerForKey 是仅存储 int 值的方法。

更新:对不起,integerForKey 是正确的方法,感谢@ JoshHinman

于 2013-07-27T21:43:03.220 回答