2012-11-13 62 views
0

我尝试这样的:添加两个NSString的共同(数字)

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林不知道,如果有什么我失踪。我只想从两个UITextField获得text并添加它们。然后将它们输出到控制台。感谢您的帮助!

+1

...你什么时候读入'num1'和'num2'?看起来你正在分配文本字段的值,而不是检索它们。 – Xymostech

回答

4

在你的示例代码,你没有初始化num1num2。所以(如果你使用的ARC,这是新项目的默认值),那些变量初始化为零。

在Objective-C中,您可以发送任何消息(如stringValueintValue)为零,并返回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); 
+0

+1因为我不知道ARC自动做到了! – borrrden

+0

+1因为你回答了我的问题,你是一个不好的屁股!多谢兄弟 –

0

这里是代码,你问你要添加两个UITextField值成一个单一String

NSString* finalSTring; 

    finalSTring =[NSString stringWithFormat:@"%@%@",textfield1.text,textField2.text]; 
    //textField1 and Textfield2 is instance of TextField. 

    NSLog(@"%@",finalSTring);//here you have new Single String 
0

如果你有两个文本字段:field1field2

int sum = [field1.text intValue] + [field2.text intValue]; 

或者,如果你想总结为NSNumber

NSNumber* sum = [NSNumber numberWithInt:[field1.text intValue] + [field2.text intValue]]; 
0

为什么不这样设置呢

NSNumber *num1; 
NSNumber *num2; 
self.addNumberOfRoundsText.text = [NSString stringWithFormat:@"%@",num1]; 
self.numberOfRoundsText.text = [NSString stringWithFormat:@"%@",num2]; 

NSNumber *sum = num1 + num2 ; 
NSLog(@"%@", sum);