我真的无法将这些值加在一起。它们都来自.plist。两者都是数字。我想将这些值一起添加,并将结果显示为标签中的字符串。
NSInteger calories = [[self.Main objectForKey:@"calories"] integerValue];
NSInteger calories2 = [[self.apps objectForKey:@"calories"] integerValue];
我基本上想用
NSString *totalCalories = calories + calories2;
self.calorieLabel.text = totalCalories;
但这不起作用。我对此感到陌生,觉得我错过了一些小而明显的东西。
有什么见解?
答案 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];