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

时间:2012-08-23 14:02:28

标签: objective-c ios cocoa-touch nsuserdefaults

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

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

感谢

3 个答案:

答案 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是“旧的”硬币。所以你在这里有两个数字,savecoinsloadcoins。您需要做的就是将它们添加到一起。请参阅Ryan的示例代码。