我试着这样做:
NSNumber *num1;
NSNumber *num2;
self.addNumberOfRoundsText.text = [num1 stringValue];
self.numberOfRoundsText.text = [num2 stringValue];
NSNumber *sum = [NSNumber numberWithInt:([num1 intValue] + [num2 intValue])];
NSLog(@"%@", [sum stringValue]);由于某些原因,控制台一直在输出0。我不确定是否遗漏了什么。然后将它们输出到控制台。谢谢你的帮助!
发布于 2012-11-13 14:19:58
在示例代码中,您还没有初始化num1和num2。因此(如果您使用的是ARC,这是新项目的默认设置),这些变量将初始化为nil。
在Objective-C中,您可以向nil发送任何消息(如stringValue或intValue),它将返回0或nil。所以:
NSNumber *num1; // initialized to nil by ARC
NSNumber *num2; // initialized to nil by ARC
// This sets self.addNumberOfRoundsText.text to nil.
self.addNumberOfRoundsText.text = [num1 stringValue];
// This sets self.numberOfRoundsText.text to nil.
self.numberOfRoundsText.text = [num2 stringValue];
// This gets 0 for [num1 intValue] and 0 for [num2 intValue], which add up
// to 0, so sum is an NSNumber representing zero.
NSNumber *sum = [NSNumber numberWithInt:([num1 intValue] + [num2 intValue])];
NSLog(@"%@", [sum stringValue]);我不知道你到底想做什么。可能您有两个文本字段,每个文本字段都包含一个数字,而您想要将这两个数字相加。如果这就是你想要做的,试试这个:
int n1 = self.addNumberOfRoundsText.text.intValue;
int n2 = self.numberOfRoundsText.text.intValue;
int sum = n1 + n2;
NSLog(@"sum = %d", sum);https://stackoverflow.com/questions/13356299
复制相似问题