Другой способ:
NSString *string = @"684.14";
NSCharacterSet *decimalSet = [NSCharacterSet decimalDigitCharacterSet];
BOOL stringIsValid = ([[string stringByTrimmingCharactersInSet:decimalSet] isEqualToString:@""] ||
[[string stringByTrimmingCharactersInSet:decimalSet] isEqualToString:@"."]);
Также помните, что вы можете использовать textField.keyboardType = UIKeyboardTypeNumberPad;
для клавиатуры. (Это не гарантирует только числовые записи, однако, это просто удобство для пользователя.)