在iOS中更改视图时丢失数据变量

时间:2012-06-17 21:16:23

标签: iphone objective-c ios

我的viewcontroller.h中有一个变量声明为

@property (nonatomic) uint size;

在viewcontrooler.m上,当按下按钮时,我为这个变量设置了一个值。

问题是,当我更改视图并返回时,我的变量的值将丢失。

我能做些什么来解决这个问题?我不需要将它声明为全局变量,因为我只是在ViewController.m中使用它。

1 个答案:

答案 0 :(得分:3)

我要做的是viewWillDissapear我会用

保存值
[[NSUserDefaults standardUserDefaults] setObject:[NSString stringWithFormat:@"%i", size] forKey:@"mySize"];

我将在viewWillAppear上使用

检索此值
size = [[[NSUserDefaults standardUserDefaults] objectForKey:@"mySize"] intValue];

然后,如果你想从app中删除值,只需使用:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"mySize"];

我还要尝试的一件事是声明没有非原子的属性(也许你会因此而保留屏幕之间的值!):

@property uint size;