如何将UITextField值转换为NSNumber?

时间:2014-01-23 04:35:30

标签: ios objective-c uitextfield nsnumber

我试图先将UITextfield Value转换为float,然后将其转换为NSNumber,但这似乎不起作用,如下所示。

       float carb = [self.carbGrams.text floatValue];
       NSLog(@"%.2f", carb);
       nCarbGrams = carb;

在最后一行中,我收到以下错误消息:

从不兼容的类型'float'

分配给'NSNumber * __ strong'

我刚刚尝试通过执行此操作将碳水化合物指定为NSNumber

      NSNumber *carb = [self.carbGrams.text floatValue];
      NSLog(@"%.2f", carb);
      nCarbGrams = carb;

但我收到此错误消息:

使用不兼容类型'float'

的表达式初始化'NSNumber * __ strong'

正如我读过的那样,尽管NSNumber可以接受任何类型的数值,但我似乎不正确,有人可以评估一下这个问题吗?

3 个答案:

答案 0 :(得分:3)

您可以使用Objective-C文字语法:

NSNumber *carb = @([self.carbGrams.text floatValue]);

答案 1 :(得分:2)

试试这个:

NSNumber *carb = [NSNumber numberWithFloat:[self.carbGrams.text floatValue]];

答案 2 :(得分:2)

您需要从float中创建一个NSNumber类型的对象。就这样

float carb = [self.carbGrams.text floatValue];
NSNumber *nCarb = [NSNumber numberWithFloat: carb];

或者为什么不使用花哨的(新的)文字语法

NSNumber *nCarb = @([self.carbGrams.text floatValue]);