-5

我以前在添加分数时遇到过这样的问题,但从未解决过,所以我想我现在问它,同时解决了这两个问题。我开了一家商店,人们可以在那里购买硬币,这些硬币将添加到他们已经拥有的硬币中。他们已经拥有的硬币可以通过以下方式加载:

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

谢谢

4

3 回答 3

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]]];
于 2012-08-23T14:11:51.233 回答
2

试试这个:

NSString *savecoins = @"100";
NSInteger coins = [savecoins integerValue];
coins += 78;
savecoins = [NSString stringWithFormat:@"%d", coins];

然后您可以使用@"178".

于 2012-08-23T14:13:17.147 回答
0

您正在保存savecoinsNSUserDefaults. 是 100,所以savecoins它变成 100 是有道理的。你也说那loadcoins是“旧”硬币。所以你在这里有两个数字,savecoinsloadcoins。您需要做的就是将它们加在一起。请参阅 Ryan 的示例代码。

于 2012-08-23T14:15:10.083 回答