I get a value from a TextField
and I need to check if there's a number in it. Whether it's a float or an integer doesn't really matter, but definitely a "Number"
How can I catch this?
This is what I'm doing so far - even if the obj is 123 (actually a number), the condition is false, so I can't get into the if
. I already tried NSValue
and Data
, but with the same results.
id obj = self.textArea.text;
if ([obj isKindOfClass:[NSNumber class]]) {
self.weight = [NSNumber numberWithFloat:([self.textArea.text floatValue])];
The text
of a text field will ALWAYS be a NSString
since that is how the class was designed.
Your task, then, is to convert it into a NSNumber
. The best way to do this is to use a number formatter like this:
NSNumberFormatter *formatter = [NSNumberFormatter new];
self.weight = [formatter numberFromString:self.textArea.text];
if (!self.weight) {
// No valid number was found.
}