私はコーディングが初めてで、練習して簡単な集計/カウンターアプリを作成しています。ユーザーがアプリを閉じたときに中断したところから続行できるように、番号を保存してロードしようとしています。
保存ボタンと読み込みボタンは実際には非常にうまく機能します...ただし、保存された数値を読み込み、+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
これは簡単な修正だと思います..助けて?!