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

Iphone 在iOS中更改视图时丢失数据变量,iphone,objective-c,ios,Iphone,Objective C,Ios,我的viewcontroller.h中有一个变量声明为 @property (nonatomic) uint size; 在viewcontrooler.m上,我在按下按钮时为这个变量设置了一个值 问题是,当我更改视图并返回时,变量的值丢失了 我能做些什么来解决这个问题?我不需要将它声明为全局变量,因为我只在ViewController.m中使用它。我要做的是在viewwilldisapear上保存值 [[NSUserDefaults standardUserDefaults] setObje

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

@property (nonatomic) uint size;
在viewcontrooler.m上,我在按下按钮时为这个变量设置了一个值

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


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

我要做的是在
viewwilldisapear
上保存值

[[NSUserDefaults standardUserDefaults] setObject:[NSString stringWithFormat:@"%i", size] forKey:@"mySize"];
我只需要在viewwill上检索这个值

size = [[[NSUserDefaults standardUserDefaults] objectForKey:@"mySize"] intValue];
然后,如果您想从应用程序中删除该值,只需使用:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"mySize"];
我还想尝试的一件事是在不使用非原子的情况下声明属性(可能会因此而在屏幕之间保留值!):


请发布一些代码,如何分配此变量,以及如何转到其他视图但假设视图控制器本身未被删除,则存储/检索该值将是毫无意义的,因为它应该是不必要的b)更严重的是,它将把问题掩盖起来,当应该调查它发生的原因时,不要试图解决它。有时在iOS设备上,您无法确保其中一个不可见的ViewController将存储在内存中。如果有任何内存警告,系统将释放不在视图中的视图。但我们对海报代码的了解还不够,无法知道视图控制器是否可见。例如,我们不知道一个视图控制器是否显示多个视图。或者,如果另一个视图是由该视图控制器以模式显示的,该怎么办。如果视图控制器被删除,您的答案可能适用,但您不知道,我也不知道,因为问题中没有可以得出该结论的信息。如果海报是初学者,你会把他弄糊涂,认为他应该一直存储默认值。嗨,我用的是故事板。我了解到,在默认情况下,当您切换到不同的视图控制器时,故事板会丢弃一个视图控制器,当您返回时,会创建一个新实例。我是初学者。最好的选择是什么?谢谢
@property uint size;