IOS 开发之ObjectiveC的变量类型的字符代表
实例代码:
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);
}
}
以上的输出结果证明:
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关键字的
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));
以上的输出结果证明:
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
读者可以根据这种方式来判断某个变量到底属于哪种类型。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。