在我现有的硬币上添加硬币

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但我不知道如何正确编码这可以有人帮助我吗?

谢谢

Rya*_*los 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"];
}
Run Code Online (Sandbox Code Playgroud)

然后你需要显示它,你可以动态创建一个字符串.

[coinsDisplay setText:[NSString stringWithFormat:@"Coins: %i",[self getCoins]]];
Run Code Online (Sandbox Code Playgroud)