Проверьте, нет ли объекта NSInteger Я надеюсь проверить тип объекта, для NSString: [theObject isKindOfClass:[NSString class]] он работает, но для NSInteger [theObject isKindOfClass:[NSInteger class]] сообщит об ошибке Приветствуем любой комментарий Ответ 1 Используйте класс NSNumber: if ([obj isKindOfClass:[NSNumber class]]) { ... } NSNumber Наследование из NSValue: NSObject NSInteger Используется для описания целого числа. #if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64 typedef long NSInteger; #else typedef int NSInteger; #endif Ответ 2 NSInteger не является классом Objective-C. Это typedef для интегрального типа. Таким образом, объект никогда не будет NSInteger. Что вы ищете, это класс NSNumber, который является классом Objective-C. Ответ 3 NSInteger не является типом объекта. Это базовый тип данных. Оформить заказ Справочная информация о базовых типах данных, чтобы узнать, как это определено. Ответ 4 //checked + (BOOL)CGFloatIsCanNSInteger:(CGFloat)floatValue inAccuracy:(NSString*)accuracy { NSString *strFloat = [NSString stringWithFormat:accuracy, floatValue]; NSRange dotRange = [strFloat rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"."]]; NSUInteger dotLocation = dotRange.location + 1; NSString *subStrFromDot = [strFloat substringFromIndex:dotLocation]; NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"123456789"]; for (int i = 0; i < [subStrFromDot length]; i++) { unichar c = [subStrFromDot characterAtIndex:i]; if ([myCharSet characterIsMember:c]) { return NO; } } return YES; } //checked
Ответ 1 Используйте класс NSNumber: if ([obj isKindOfClass:[NSNumber class]]) { ... } NSNumber Наследование из NSValue: NSObject NSInteger Используется для описания целого числа. #if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64 typedef long NSInteger; #else typedef int NSInteger; #endif
Ответ 2 NSInteger не является классом Objective-C. Это typedef для интегрального типа. Таким образом, объект никогда не будет NSInteger. Что вы ищете, это класс NSNumber, который является классом Objective-C.
Ответ 3 NSInteger не является типом объекта. Это базовый тип данных. Оформить заказ Справочная информация о базовых типах данных, чтобы узнать, как это определено.
Ответ 4 //checked + (BOOL)CGFloatIsCanNSInteger:(CGFloat)floatValue inAccuracy:(NSString*)accuracy { NSString *strFloat = [NSString stringWithFormat:accuracy, floatValue]; NSRange dotRange = [strFloat rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"."]]; NSUInteger dotLocation = dotRange.location + 1; NSString *subStrFromDot = [strFloat substringFromIndex:dotLocation]; NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"123456789"]; for (int i = 0; i < [subStrFromDot length]; i++) { unichar c = [subStrFromDot characterAtIndex:i]; if ([myCharSet characterIsMember:c]) { return NO; } } return YES; } //checked