在您的示例代码中,您尚未初始化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);