Kev*_*vin -5 cocoa-touch objective-c nsuserdefaults ios
我之前有一个类似的问题,但是添加分数却从未解决过,所以我想我现在就问它并同时修复这两个问题.我做了一个商店,人们可以在那里购买硬币,这些硬币将被添加到他们已有的硬币中.他们已经拥有的硬币可以通过以下方式加载:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *loadcoins = [defaults objectForKey:@"savedcoins"];
[coinsdisplay setText:loadstring];
Run Code Online (Sandbox Code Playgroud)
我有一个按钮,你可以买100个硬币
-(IBAction)savecoins100:(id)sender {
NSString *savecoins = @"100";
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:savecoins forKey:@"savedcoins"];
[defaults synchronize];
}
Run Code Online (Sandbox Code Playgroud)
我想要的是新的字符串不是@"100"而是100 +以前的硬币现在这将是loadcoins但我不知道如何正确编码这可以有人帮助我吗?
谢谢
对于初学者来说你应该不应该使用字符串...为什么你不使用整数,因为你在计算?
- (void)addCoins:(int)coinsToAdd
{
int currentCoins = [[NSUserDefaults standardUserDefaults] integerForKey:@"savedcoins"];
int newCoins = currentCoins + coinsToAdd;
[[NSUserDefaults standardUserDefaults] setInteger:newCoins forKey:@"savedCoins"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
- (int)getCoins
{
return [[NSUserDefaults standardUserDefaults] integerForKey:@"savedcoins"];
}
Run Code Online (Sandbox Code Playgroud)
然后你需要显示它,你可以动态创建一个字符串.
[coinsDisplay setText:[NSString stringWithFormat:@"Coins: %i",[self getCoins]]];
Run Code Online (Sandbox Code Playgroud)