我希望來檢查對象的類型,NSString的:檢查的對象是NSInteger的
[theObject isKindOfClass:[NSString class]]
它的工作原理,但NSInteger的
[theObject isKindOfClass:[NSInteger class]]
會報告錯誤
歡迎任何評論
我希望來檢查對象的類型,NSString的:檢查的對象是NSInteger的
[theObject isKindOfClass:[NSString class]]
它的工作原理,但NSInteger的
[theObject isKindOfClass:[NSInteger class]]
會報告錯誤
歡迎任何評論
使用NSNumber類:
從NSValueif ([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
NSInteger
不是Objective-C類。這是一個整型的typedef。因此,一個對象永遠不會是一個NSInteger。
你在找什麼是NSNumber
類,它是一個Objective-C類。
NSInteger不是對象類型。這是基礎數據類型。結賬Foundation Data Types Reference看看它是如何定義的。
//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
您應該使用代碼標籤來正確設置它的格式:) – bkbeachlabs