@encode()

为了更好的互操作性,Objective-C 的数据类型,甚至自定义类型、函数或方法的元类型,都可以使用 ASCII 编码。@encode(aType) 可以返回该类型的 C 字符串(char *)的表示

    NSDictionary *dic = @{@"key1":[NSNumber numberWithBool:YES],
@"key2":[NSNumber numberWithDouble:77.777777f],
@"key3":[NSNumber numberWithInt:99],
@"key4":[NSNumber numberWithFloat:55.0f],
@"key5":[NSNumber numberWithUnsignedInteger:100]};
for(NSString *key in dic){
id value = [dic valueForKey:key];
NSLog(@"value === %@",value);
if([value isKindOfClass:[NSNumber class]]){
const char * pObjCType = [((NSNumber*)value) objCType];
if (strcmp(pObjCType, @encode(int)) == 0) {
NSLog(@"字典中key=%@的值是int类型,值为%d",key,[value intValue]);
}
if (strcmp(pObjCType, @encode(float)) == 0) {
NSLog(@"字典中key=%@的值是float类型,值为%f",key,[value floatValue]);
}
if (strcmp(pObjCType, @encode(double)) == 0) {
NSLog(@"字典中key=%@的值是double类型,值为%f",key,[value doubleValue]);
}
if (strcmp(pObjCType, @encode(_Bool)) == 0 || strcmp([value objCType], @encode(char)) == 0) {
NSLog(@"字典中key=%@的值是bool类型,值为%i",key,[value boolValue]);
}
if (strcmp(pObjCType, @encode(NSUInteger)) == 0 || strcmp(pObjCType, @encode(NSInteger)) == 0) {
NSLog(@"字典中key=%@的值是NSUInteger类型,值为%i",key,[value boolValue]);
}
} } /*
2014-03-26 10:26:49.259 Test[88121:60b] value === 99
2014-03-26 10:26:49.260 Test[88121:60b] 字典中key=key3的值是int类型,值为99
2014-03-26 10:26:49.260 Test[88121:60b] value === 1
2014-03-26 10:26:49.261 Test[88121:60b] 字典中key=key1的值是bool类型,值为1
2014-03-26 10:26:49.261 Test[88121:60b] value === 55
2014-03-26 10:26:49.261 Test[88121:60b] 字典中key=key4的值是float类型,值为55.000000
2014-03-26 10:26:49.262 Test[88121:60b] value === 77.77777862548828
2014-03-26 10:26:49.262 Test[88121:60b] 字典中key=key2的值是double类型,值为77.777779
2014-03-26 10:26:49.262 Test[88121:60b] value === 100
2014-03-26 10:26:49.262 Test[88121:60b] 字典中key=key5的值是NSUInteger类型,值为1
2014-03-26 10:26:49.263 Test[88121:60b] EOCStringConstant = EOCStringConstant
*/

版权声明:本文为博主原创文章,未经博主允许不得转载。

@encode关键字的更多相关文章

  1. 作为一个新手的Oracle(DBA)学习笔记【转】

    一.Oracle的使用 1).启动 *DQL:数据查询语言 *DML:数据操作语言 *DDL:数据定义语言 DCL:数据控制语言 TPL:事务处理语言 CCL:指针控制语言 1.登录 Win+R—cm ...

  2. java 关键字查询时的转义操作

    /** * mysql模糊查询时,如果查询关键字本身包含_和%,需要转义 * * @param queryKey 查询关键字 * @return 转义字符 */ private String conv ...

  3. Objective-C关键字和概念

    Objective-C关键字和概念 @ 看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interface XXX. @interface 声明类 @implementati ...

  4. Objective-C中@encode的使用

    今天看Mansonry的代码时,碰到一个生僻的关键字(也许只是自己没用过).:-) @encode  => 将给定类型编码为内部表示的字符串. 为了方便自己查阅,顺便也写个小例子,贴在这里,实践 ...

  5. 简单的抓取淘宝关键字信息、图片的Python爬虫|Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇)

    Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇) 淘宝改字段,Bugfix,查看https://github.com/hunterhug/taobaoscrapy.git 由于Gith ...

  6. (转)asp.net动态设置标题title 关键字keywords 描述descrtptions

    方法一 if (!IsPostBack){//Page title网页标题Page.Title = “我的网站标题”;//须将网页head标签设成服务器控件模式,即<head runat=&qu ...

  7. 1218.1——OC中的常见关键字及一些基本方法

    OC常见的关键字介绍: @ 看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interface XXX. @interface 声明类 @implementation 实现类 ...

  8. objective-c 关键字和概念

    @ 看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interface XXX. @interface 声明类 @implementation 实现类 @protocol 声 ...

  9. RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary库其它的常见自动化关键字

    关键字 使用描述 Close Application 关闭掉当前已经打开的APP Application,该关键字不需要接收任何的参数,但是使用该关键字的前提是已经打开了一个APP Applicati ...

随机推荐

  1. Convolutional Neural Networks(3):Convolution and Channels

    在CNN(1)和CNN(2)两篇文章中,主要说明的是CNN的基本架构和权值共享(Weight Sharing),本文则重点介绍卷积的部分. 首先,在卷积之前,我们的数据是4D的tensor(width ...

  2. 应用安全 - Web安全 - 文件包含攻防

    LFI - 无限制本地文件包含 通过目录遍历漏洞可以获取到系统中其他文件的内容 常见的敏感信息路径 Windows系统 c:\boot.ini // 查看系统版本 c:\windows\system3 ...

  3. 利用pwdx查看Linux程序的工作目录

    Linux中的pwdx命令,利用进程号作为参数,可以打印出指定进程号的工作目录,帮助我们区分不同的进程. pwdx <pid> [hnyundev@BJ03000036 ~]$ pwd 3 ...

  4. js提交map类型参数

    方式一:使用 xmlHttpRequest 对象发送数据 function sendMapPost(map, url){ var xmlHttpRequest = createXMLHttpReque ...

  5. kmp(前缀出现次数next应用)

    http://acm.hdu.edu.cn/showproblem.php?pid=3336 Count the string Time Limit: 2000/1000 MS (Java/Other ...

  6. AC自动机题单

    AC自动机题目 真的超级感谢xzy 真的帮到我很多 题单 [X] [luogu3808][模板]AC自动机(简单版) https://www.luogu.org/problemnew/show/P38 ...

  7. shell变量的声明和使用

  8. SCM

    scm即软件配置管理. 软件配置管理(SCM)是指通过执行版本控制.变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性,配置管理是对工作成果的一种有效保护. SCM(Sof ...

  9. HDU4089/Uva1498 Activation 概率DP(好题)

    题意:Tomato要在服务器上激活一个游戏,一开始服务器序列中有N个人,他排在第M位,每次服务器会对序列中第一位的玩家进行激活,有四种结果: 1.有p1的概率会激活失败,这时候序列的状态是不变的.2. ...

  10. CSS实现三级菜单[转]

    头部导航条布局 html代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...