我在编码方面非常陌生,并且正在练习并正在制作一个简单的计数/计数器应用程序。我正在尝试保存并加载该号码,以便用户在关闭应用程序后可以从上次中断的地方继续。
保存和加载按钮实际上工作得很好......除了一旦我加载保存的号码,我按下 +1 或 -1 按钮,它从 0 开始,就好像它是没有保存数据的应用程序的新加载一样。
当用户加载保存的号码时,我怎样才能做到这一点,+1 和 -1 按钮可以读取加载的号码?
这是我的 +1 按钮..没有改变它:
-(IBAction)Up:(id)sender; {
Number = Number + 1;
Count.text = [NSString stringWithFormat:@"%i", Number];
}
这些是我的保存和加载按钮:
-(IBAction)save {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@(self.number) forKey:@"number"];
[defaults synchronize];
}
-(IBAction)load {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@(self.number) forKey:@"number"];
self.number = [[defaults objectForKey:@"number"] integerValue];
}
这是底部的额外部分:
- (void)setNumber:(NSInteger)number {
_number = number;
self.label.text = [NSString stringWithFormat:@"%i", _number];
// this part is giving a warning says "writable atomic property 'number' cannot
// pair a synthesized getter with a user defined setter
}
最后这是我的 .h
int Number;
@interface ViewController : UIViewController
{
IBOutlet UISwitch *theswitch;
IBOutlet UILabel *count;
}
-(IBAction)Up:(id)sender;
-(IBAction)Down:(id)sender;
-(IBAction)Reset:(id)sender;
-(IBAction) save;
-(IBAction) load;
@property NSInteger number;
@property (assign) UILabel *label;
@end
我觉得这是一个简单的修复..帮助?!