Isn't there some basic check I can do in one simple line?
No.
NSScanner *scanner = [NSScanner scannerWithString:testString];
BOOL isNumeric = [scanner scanInteger:NULL] && [scanner isAtEnd];
If you want to allow decimal digits exchange scanInteger:
by scanDouble:
.