关于ios:如何将UITextField值转换为NSNumber?

How To Convert UITextField value Into NSNumber?

本问题已经有最佳答案,请猛点这里访问。

我尝试先将uitextfield值转换为float,然后将其转换为nsnumber,但这似乎不起作用,如下所示。

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

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

从不兼容的类型"float"分配给"nsnumber*uuu strong"

然后我试着通过这样做把碳水化合物指定为NSnumber。

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

但我收到了这个错误消息:

正在用"float"类型不兼容的表达式初始化"nsnumber*uuu strong"

正如我读到的,虽然nsnumber可以接受任何类型的数值,但我似乎不正确,有人能评估一下这个问题吗?


您可以使用objective-c文本语法:

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

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

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

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

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


试试这个:

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