在你的示例代碼,你沒有初始化num1
和num2
。所以(如果你使用的ARC,這是新項目的默認值),那些變量初始化爲零。
在Objective-C中,您可以發送任何消息(如stringValue
或intValue
)爲零,並返回0或零。所以:
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);
...你什麼時候讀入'num1'和'num2'?看起來你正在分配文本字段的值,而不是檢索它們。 – Xymostech