首页 > 系统 > iOS > 正文

IOS 开发之ObjectiveC的变量类型的字符代表

2020-07-26 02:43:50
字体:
来源:转载
供稿:网友

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 

读者可以根据这种方式来判断某个变量到底属于哪种类型。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表