Ios7 保存变量的值

Ios7 保存变量的值,ios7,nsuserdefaults,Ios7,Nsuserdefaults,这是NSUserdefaults代码 -(IBAction)SaveButton:(id)sender { NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults]; NSString* Assignment0Text = screen0.text; [defaults setObject:Assignment0Text forKey:@"Assignment0Text"]; [defaults

这是
NSUserdefaults
代码

-(IBAction)SaveButton:(id)sender {
    NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
    NSString* Assignment0Text = screen0.text;
    [defaults setObject:Assignment0Text forKey:@"Assignment0Text"];
    [defaults synchronize];
}

-(IBAction)LoadButton:(id)sender {

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString* temp0 = [defaults objectForKey:@"Assignment0Text"];
    screen0.text = temp0;

}
上面的代码表示程序只保存和加载文本字段/标签内的字符串值

我的问题是,如何修改此代码,以便
NSUserDefaults
可以保存并加载变量的值(在本例中为int&float),而不是文本字段/标签中的文本?因此,当我加载程序时,所有整数/浮点值都是相同的。文本字段/标签内的文本中写入的内容不相同。屏幕上显示的只是一个浮点数,其变量名为
runningtotal

screen0.text = [NSString stringWithFormat:@"%2.2f", runningtotal];

如果我正确理解了您的问题,您应该为变量使用包装器,如
int

int值=5;
[默认设置setObject:@(值)forKey:@“Assignment0Number”];

神奇的是
NSUserDefaults
不能存储像
5
这样的非对象值。您需要创建
NSObject
对象,在其中存储值,然后将此对象保存到
NSUserdefaults
中。这就是我写“@(value)”时发生的情况

如果更准确地说,
@(value)
[NSNumber numberwhithint:value]
的字面意思,并且由于
NSNumber
NSObject
的对象和子类,现在可以存储该值

编辑:

以下是您可能想要的(我假设
runningtotal
是类变量):


非常感谢。那么它应该是这样的吗-(iAction)SaveButton:(id)发送方{NSUserDefaults defaults=[NSUserDefaults standardUserDefaults];NSString Assignment0Text=screen0.text;[defaults setObject:[NSNumber numberWithInt:runningtotal]forKey:@“Assignment0Number”];NSString*Assignment1Text=screen1.text;[defaults setObject:@(runningtotal)forKey:@“转让1文本”];
-(IBAction)SaveButton:(id)sender {
    NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
    [defaults setObject:@(runningtotal) forKey:@"Assignment0Text"];
    [defaults synchronize];
}

-(IBAction)LoadButton:(id)sender {

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSNumber* temp0 = [defaults objectForKey:@"Assignment0Text"];
    runningtotal = [temp0 intValue];

}