实例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
NSDictionary *dic = @{@ "1" :[NSNumber numberWithBool:YES],
@ "2" :[NSNumber numberWithChar: '1' ],
@ "3" :[NSNumber numberWithDouble:2.0],
@ "4" :[NSNumber numberWithFloat:2.0f],
@ "5" :[NSNumber numberWithInt:1],
@ "6" :[NSNumber numberWithInteger:2],
@ "7" :[NSNumber numberWithLong:30],
@ "8" :[NSNumber numberWithLongLong:3],
@ "9" :[NSNumber numberWithShort:4],
@ "10" :[NSNumber numberWithUnsignedChar: '1' ],
@ "11" :[NSNumber numberWithUnsignedInt:3],
@ "12" :[NSNumber numberWithUnsignedInteger:35],
@ "13" :[NSNumber numberWithUnsignedLong:45],
@ "14" :[NSNumber numberWithUnsignedLongLong:59],
@ "15" :[NSNumber numberWithUnsignedShort:4]
};
for (NSString *key in dic){
id value = [dic valueForKey:key];
if ([value isKindOfClass:[NSNumber class ]]){
const charchar * pObjCType = [((NSNumber*)value) objCType];
NSLog(@ "%@,%s" ,key,pObjCType);
}
}
|
以上的输出结果证明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
UnsignedChar =>s
Char =>c
UnsignedShort =>i
LongLong =>d
UnsignedInt =>q
Float =>f
Int =>i
UnsignedInteger =>q
Integer =>q
UnsignedLong =>q
Long =>q
LongLong =>q
UnsignedLongLong=>q
Bool =>c
Short =>s
double =>d
|
再看以下代码,用@encode关键字的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
NSLog(@ "1=>%s" ,@encode( BOOL ));
NSLog(@ "2=>%s" ,@encode( char ));
NSLog(@ "3=>%s" ,@encode( double ));
NSLog(@ "4=>%s" ,@encode( float ));
NSLog(@ "5=>%s" ,@encode( int ));
NSLog(@ "6=>%s" ,@encode(NSInteger));
NSLog(@ "7=>%s" ,@encode( long ));
NSLog(@ "8=>%s" ,@encode( long long ));
NSLog(@ "9=>%s" ,@encode( short ));
NSLog(@ "10=>%s" ,@encode(unsigned char ));
NSLog(@ "11=>%s" ,@encode(unsigned int ));
NSLog(@ "12=>%s" ,@encode(unsigned long )); //unsigned NSInteger
NSLog(@ "13=>%s" ,@encode(unsigned long ));
NSLog(@ "14=>%s" ,@encode(unsigned long long ));
NSLog(@ "15=>%s" ,@encode(unsigned short ));
|
以上的输出结果证明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
BOOL =>c
char =>c
double =>d
float =>f
int =>i
NSInteger=>q
long =>q
long long =>q
short =>s
unsigned char =>C
unsigned int =>I
unsigned NSInteger=>Q
unsigned long =>Q
unsigned long long =>Q
unsigned short =>S
|
读者可以根据这种方式来判断某个变量到底属于哪种类型。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://blog.csdn.net/nunchakushuang/article/details/39317309