В Objective C, как я могу проверить, если строка/NSNumber целое или ИНТObjective C: Проверьте, если число/INT/номер
ответ
Вы можете использовать метод intValue на NSString:
NSString *myString = @"123";
[myString intValue]; // returns (int)123
Для этого есть документация Apple - он вернет 0, если это недопустимое целое число: http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/intValue
Надеюсь, что это поможет!
Как я могу найти, является ли переменная строкой? – Daniel
Как и в случае, вы хотите проверить и посмотреть, является ли какой-то пользовательский ввод простой простой строкой или числом? Как я уже сказал выше, intValue возвращает 0, когда NSString не является допустимым целым числом.Скажем, вы получаете информацию из UITextView - [[myTextView text] intValue] вернет действительный int, если это возможно, или 0, если он не может быть проверен как int. – codykrieger
Хорошо, что проблема есть. Иногда пользователь не вводит никакого ввода. потому что это не требуется. И так как я использую массив и захватываю объект из него. Я получаю *** - [NSCFArray objectAtIndex:]: index (3) за пределами границ (3) мне нужно проверить, действительно ли массив действителен? – Daniel
Чтобы проверить, если NSNumber если целочисленное попробовать:
const char *t = [(NSNumber *)value objCType];
if (strcmp("i", t) == 0); // YES if integer
Если вы пытаетесь определить, есть ли или нет NSString
числовое значение или нет, попробуйте использовать NSNumberFormatter
.
-(BOOL) stringIsNumeric:(NSString *) str {
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSNumber *number = [formatter numberFromString:str];
[formatter release];
return !!number; // If the string is not numeric, number will be nil
}
Я думал, что я был единственным, кто сделал !! взломать принуждение к логическому. Ницца! –
Этот вопрос лучше, чем [одобренный ответ] (http://stackoverflow.com/a/3473806/377384), потому что он дает вам истинный/ложный результат. Утвержденный ответ нет. –
Это лучше, потому что принятый ответ не работает должным образом, если вы проверите строку с буквами, начинающимися с номера. Пример «1234asdf» вернет 1234, а не 0, это возвращает NO. И «000» вернет 0, и вы можете подумать, что это неправильно, но это не – jcesarmobile
Вы можете конечно сначала определить, является ли его в NSString или NSNumber с помощью
[Объект isKindOfClass: [NSString класс]] и т.д. ...
- boolValue - charValue - decimalValue - doubleValue - floatValue - intValue - integerValue - longLongValue - longValue - shortValue - unsignedCharValue - unsignedIntegerValue - unsignedIntValue - unsignedLongLongValue - unsignedLongValue - unsignedShortValue
все методы NSNumber, чтобы получить свои ценности. NSString получил несколько подобных.
Я положил это в свою категорию NSString (Util)
.
- (BOOL) isInt {
if ([self isEqualToString:@"0"])
return YES;
return (self.intValue != 0);
}
Для NSString, если вы используете intValue/integerValue, есть определенные случаи, которые не обрабатываются, как он принимает во внимание только начало строки.
Например @ "bl3h" не считается целым числом, но @ "3h", дал выход 3
Мое решение для NSString:
Использование:
NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:strName];
NSCharacterSet *numSet = [NSCharacterSet decimalDigitCharacterSet];
if([numSet isSupersetOfSet: charSet])
{
// It is an integer (or it contains only digits)
}
- 1. Objective-C - Если заявления
- 2. Objective-C Проверьте, столкнулись ли два объекта:
- 3. проверьте, было ли повернуто изображение - Objective-c
- 4. Проверьте, возвращает ли функция true Objective-C
- 5. Проверьте поддерживаемые архитектуры фреймворка в Objective C
- 6. IOS/Objective-C: проверьте, присутствует ли изображение
- 7. Проверьте атрибут элементов в каталоге Objective-C
- 8. Если url существует Objective-c
- 9. Objective-C, если против переключателя
- 10. Проверьте, если массив существует Swift
- 11. Objective-C NSData initWithContentsOfFile, проверьте, существует ли файл?
- 12. Objective-C Возможно более короткое «если» обозначение?
- 13. Проверка, если строка является URL - Objective-C
- 14. Objective-C «если» заявления не сохраняя
- 15. Objective-C, если элемент существует в NSMutableArray
- 16. Objective-C Если этот UIScrollView такого размера
- 17. Objective-C препроцессор директива для «если не»
- 18. Objective-C: если использовать функцию против метода
- 19. Если Swift заменит Objective-C в будущем
- 20. iPhone Objective-C: Если строка содержит ...?
- 21. Проверьте, что кнопка Полученное штрихом в Objective-C
- 22. Проверьте, если строка может мутировать в C
- 23. Проверьте с помощью C#, если для IIS
- 24. Проверьте, если строка содержит другой C
- 25. C# - Проверьте, если пользователь зарегистрировался на Facebook
- 26. Проверьте, чтобы увидеть, если C# метод используется
- 27. В Objective-C Проверьте массив значений Integer и посмотрите, если хотя бы одно значение> 0
- 28. Проверьте, что каталог пуст или удален, только если пустым в Objective-C
- 29. Objective-C: проверьте, что вид касается другого вида.
- 30. Objective-c Проверьте размер файла с URL-адреса без загрузки
Пожалуйста, объясните более подробно что ты имеешь в виду. Оба NSString и NSNumber могут быть преобразованы в int или NSInteger, но ни один из них не является * int или NSInteger. – Chuck
Хорошо, извините, мне нужно знать, является ли String или Int int/integer. См. Раздел «Деление числа на другой номер», но число, которое пользователь ставит, может не быть int. мне нужно проверить, если его номер int – Daniel