サンプルコードでは、とを初期化していnum1
ないnum2
。したがって(新しいプロジェクトのデフォルトであるARCを使用している場合)、これらの変数はnilに初期化されます。
stringValue
Objective-Cでは、任意のメッセージ(または)をnilに送信でき、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]);
あなたが実際に何をしようとしているのかわかりません。2つのテキストフィールドがあり、各テキストフィールドに数値が含まれていて、それらの2つの数値を合計したい場合があります。それがあなたがしたいことなら、これを試してください:
int n1 = self.addNumberOfRoundsText.text.intValue;
int n2 = self.numberOfRoundsText.text.intValue;
int sum = n1 + n2;
NSLog(@"sum = %d", sum);