2011-08-24 15 views

答えて

51

NSNumberクラスを使用してください:

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

のNSNumber継承: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 
11

NSIntegerはObjective-Cクラスではありません。これは整数型のtypedefです。したがって、オブジェクトは決してNSIntegerになることはありません。

あなたが探しているのはObjective-CクラスのNSNumberクラスです。

6

NSIntegerはオブジェクト型ではありません。基礎データ型です。その定義方法を確認するにはFoundation Data Types Referenceをチェックしてください。

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

これを正しくフォーマットするにはcodeタグを使用する必要があります:) – bkbeachlabs

関連する問題