我之前遇到过这样的问题,但是添加得分却从未解决过,所以我想我现在就问它并同时修复这两个问题。我做了一个商店,人们可以在那里购买硬币,这些硬币将被添加到他们已有的硬币中。他们已经拥有的硬币可以通过以下方式加载:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *loadcoins = [defaults objectForKey:@"savedcoins"];
[coinsdisplay setText:loadstring];
我有一个按钮,你可以买100个硬币
-(IBAction)savecoins100:(id)sender {
NSString *savecoins = @"100";
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:savecoins forKey:@"savedcoins"];
[defaults synchronize];
}
我想要的是新的字符串不是@“100”而是100 +以前的硬币现在这将是loadcoins但我不知道如何正确编码这可以有人帮助我吗?
感谢
答案 0 :(得分:5)
对于初学者来说,你应该不应该使用字符串...为什么你不使用整数,因为你在计算?
- (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"];
}
然后,无论你需要显示它,你都可以动态创建一个字符串。
[coinsDisplay setText:[NSString stringWithFormat:@"Coins: %i",[self getCoins]]];
答案 1 :(得分:2)
试试这个:
NSString *savecoins = @"100";
NSInteger coins = [savecoins integerValue];
coins += 78;
savecoins = [NSString stringWithFormat:@"%d", coins];
然后您可以使用@"178"
再次使用字符串。
答案 2 :(得分:0)
您要将savecoins
保存到NSUserDefaults
。并且savecoins
是100,因此有意义它变为100.你还说loadcoins
是“旧的”硬币。所以你在这里有两个数字,savecoins
和loadcoins
。您需要做的就是将它们添加到一起。请参阅Ryan的示例代码。