realidad como cerrar aumentada apps aplicaciones iphone objective-c cocoa-touch cocoa

iphone - como - ios 12



Compruebe si un objeto es NSInteger (4)

Espero comprobar el tipo de un objeto, para NSString:

[theObject isKindOfClass:[NSString class]]

funciona, pero para NSInteger

[theObject isKindOfClass:[NSInteger class]]

informará error

Bienvenido cualquier comentario



Utilice la clase NSNumber:

if ([obj isKindOfClass:[NSNumber class]]) { ... }

NSNumber Hereda de NSValue: NSObject

NSInteger Se utiliza para describir un número entero.

#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64 typedef long NSInteger; #else typedef int NSInteger; #endif


NSInteger no es una clase Objective-C. Es un typedef para un tipo integral. Como tal, un objeto nunca será un NSInteger.

Lo que estás buscando es la clase NSNumber , que es una clase Objective-C.


//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