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])];
To find whether a given string contains a number, convert it to a character array and find whether each character in the array is a digit using the isDigit() method of the Character class.
To check whether a text string is a number, ie whether it contains only valid number characters, you can use the following syntax with the IsNumber function: IsNumber(<text value>) <text value> is a number.
We can check whether the given character in a string is a number/letter by using isDigit() method of Character class. The isDigit() method is a static method and determines if the specified character is a digit.
The isdigit() method is an attribute of the string object to determine whether the string is a digit or not. This is the most known method to check if a string is an integer. This method doesn't take any parameter, instead, it returns True if the string is a number (integer) and False if it's not.
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.
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With