如何在目标c中将这两个值相加

时间:2014-10-09 22:11:13

标签: ios objective-c iphone

我真的无法将这些值加在一起。它们都来自.plist。两者都是数字。我想将这些值一起添加,并将结果显示为标签中的字符串。

NSInteger calories = [[self.Main objectForKey:@"calories"] integerValue];
NSInteger calories2 = [[self.apps objectForKey:@"calories"] integerValue];

我基本上想用

NSString *totalCalories = calories + calories2;
self.calorieLabel.text = totalCalories;

但这不起作用。我对此感到陌生,觉得我错过了一些小而明显的东西。

有什么见解?

4 个答案:

答案 0 :(得分:3)

就加法本身而言,你已经存在了:

NSInteger totalCalories = calories + calories2;

现在您需要将此数字转换为字符串,您可以这样做:

NSString *totalCaloriesText = [NSString stringWithFormat:@"%d", totalCalories];

问题在于您尝试将整数表达式(calories + calories2)视为字符串。这在一些编程语言中是有效的,但在Objective-C中你必须明确这些转换。

答案 1 :(得分:0)

添加两个数字会返回数字,因此您需要将您的数字转换为NSString,因为您需要NSString的stringWithFormat方法:

NSString *totalCalories = [NSString stringWithFormat:@"%d", (calories + calories2)];
self.calorieLabel.text = totalCalories;

答案 2 :(得分:0)

juste根据结果创建一个字符串。

NSString *totalCalories = [NSString stringWithFormat:@"%i", calories + calories];

答案 3 :(得分:0)

@bdesham是对的,你不能直接为数学运算添加字符串,如加/减。是的,有些语言支持字符串的这种操作。

在Objective C中,您需要在执行此操作之前与特定类型进行对话。 以上所有答案都会为您提供正确的结果。在这里,我为您提供了明显的方式来进行数字操作的对话

    NSNumber *caloriesValue = [self.Main objectForKey:@"calories"];
    NSNumber *caloriesValue2 = [self.apps objectForKey:@"calories"];

    NSInteger totalCalories = [caloriesValue integerValue] + [caloriesValue2 integerValue];
    NSString *totalCaloriesText = [NSString stringWithFormat:@"%ld", totalCalories];