Вы можете проверить, имеет ли строка номер или нет, используя регулярное выражение
NSString *search = @"23.3";
//regex for integer number -> ^[0-9]*$
//regex for integer and decimal number -> ^[0-9]+([\,\.][0-9]+)?$
NSString *pattern = @"(^[0-9]+([,.][0-9]+)?$)";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];
NSTextCheckingResult *match = [regex firstMatchInString:search options:0 range:NSMakeRange(0, search.length)];
if(match == nil){
NSLog(@"Not a number");
}else{
NSLog(@"Number");
}