Objective-c 字面量
Objective-c早就支持字面量,但是IOS到XCODE 4.5,IOS6,LLVM4.0才开始较好的支持字面量。
以下是简要对比:
|
未使用字面量 |
使用字面量 |
|---|---|
| NSString *greeting = [NSString stringWithUTF8String:"Hello World"]; | NSString *greeting = @"Hello World"; |
| NSNumber *number; | NSNumber *number; |
| number = [NSNumber numberWithChar:'X']; | number = @'X'; |
| number = [NSNumber numberWithInt:12345]; | number = @12345; |
| number = [NSNumber numberWithUnsignedLong:12345ul]; | number = @12345ul; |
| number = [NSNumber numberWithLongLong:12345ll]; | number = @12345ll; |
| number = [NSNumber numberWithFloat:123.45f]; | number = @123.45f; |
| number = [NSNumber numberWithDouble:123.45]; | number = @123.45; |
| number = [NSNumber numberWithBool:YES]; | number = @YES; |
| [NSNumber numberWithint:6 + x * 2012] | @(6+x*2012) |
| NSNumber *piOverSixteen = [NSNumber numberWithDouble: (M_PI / 16)]; | NSNumber *piOverSixteen = @( M_PI / 16 ); |
| NSNumber *hexDigit = [NSNumber numberWithChar:"0123456789ABCDEF"[i % 16]];NSNumber *hexDigit = @( "0123456789ABCDEF"[i % 16] ); | NSNumber *hexDigit = @( "0123456789ABCDEF"[i % 16] ); |
| NSNumber *usesScreenFonts = [NSNumber numberWithBool:[NSLayoutManager usesScreenFonts]]; | NSNumber *usesScreenFonts = @( [NSLayoutManager usesScreenFonts] ); |
| NSNumber *writingDirection = [NSNumber numberWithInt:NSWritingDirectionLeftToRight]; | NSNumber *writingDirection = @( NSWritingDirectionLeftToRight ); |
| NSNumber *path = [NSString stringWithUTF8String: getenv("PATH")]; | NSNumber *path = @( getenv("PATH") ); |
| array = [NSArray arrayWithObjects:a, b, c, nil]; | array = @[ a, b, c ]; |
| [array objectAtIndex:1] | array[1] |
| dict = [NSDictionary dictionaryWithObjects:@[o1, o2, o3] forKeys:@[k1, k2, k3]]; | dict = @{ k1 : o1, k2 : o2, k3 : o3 }; |
| [NSDictionary dictionaryWithObjectsAndKeys: v1, k1, v2, k2, nil]; | @{k1:v1, k2:v2} |
| [dictionary valueForKey:k] | dictionary[k] |
注:
@YES/@NO和下标功能从IOS6才开始支持(XCODE4.5+LLVM4.0)。
其他字面量从XCODE4.4+LLVM4.0就已经支持。
Objective-c 字面量的更多相关文章
- Javascript正则构造函数与正则表达字面量&&常用正则表达式
本文不讨论正则表达式入门,即如何使用正则匹配.讨论的是两种创建正则表达式的优劣和一些细节,最后给出一些常用正则匹配表达式. Javascript中的正则表达式也是对象,我们可以使用两种方法创建正则表达 ...
- es6 中增强的对象字面量
http://www.cnblogs.com/Wayou/p/es6_new_features.html 对象字面量被增强了,写法更加简洁与灵活,同时在定义对象的时候能够做的事情更多了.具体表现在: ...
- [译]ES6新特性:八进制和二进制整数字面量
原文:http://whereswalden.com/2013/08/12/micro-feature-from-es6-now-in-firefox-aurora-and-nightly-binar ...
- JavaScript对象的理解 及 字面量对象与数组的关系
JavaScript的简单类型包括 数字.字符串.布尔值.null值.undefined值. 其他的值都是对象.对象是可变的键控集合.数组.函数.正则表达式都是对象. 对象是属性的容器,属性都是名字和 ...
- iOS @@创建NSURL的字面量
@@ 是创建 NSURL 的字面量的绝佳方法(例如:@@"http://example.com")
- java基本数据类型的字面量
java的基本数据类型一共有8种.其中:(每种类型后面列出了java中的该类型的字面量) 四种整型: int 4字节: 12 +12 -12 077 0xFF 0b101(JDK7中支持的二 ...
- Javascript模式(第三章字面量与构造函数)------读书笔记
一 对象字面量 1.1对象字面量的语法 1,对象键值对哈希表,在其他的编程语言中称之为“关联数组”, 2 键值对里面的值,可以是原始类型也可以是其他类型的对象,称之为属性,函数称之为方法 3 自定义对 ...
- Swift开发第七篇——字面量转换&下标
本篇分为两部分: 一.Swift 中的字面量转换 二.Swift 中的下标 一.Swift 中的字面量转换 所谓字面量就是指像特定的数字,字符串或者是布尔值这样能够直接了当地指出自己的类型并未变量进行 ...
- javascript中对象字面量的理解
javascript中对象字面量与数组字面量 第一部分 我们知道JavaScript中的数据类型有基本数据类型和引用类型,其中Object类型就是非常常用的类型.那么如果创建一个Object类型的实例 ...
- Effective Objective-C 2.0 — 第三条:多用字面量语法,少用与之等价的方法
第三条:多用字面量语法,少用与之等价的方法 几个类:NSString NSNumber NSArray NSDictionary 字面量语法是一种语法糖(syntactic sugar) NSS ...
随机推荐
- JAVA中this和super用法
参考网上资料和自行理解总结java中this和super中各自用法及其差异 <一>. this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对 ...
- CentOS7设置开机自启动方式
方式一: # 在/etc/rc.d/rc.local文件中追加启动命令,该文件追加后,会随着机器自动后,自动运行文件中的命令 # vim /etc/rc.d/rc.local # 权限问题:在cent ...
- nginx 图片访问404 (使用location中使用 root,alias的区别)
问题描述: 在/data/code_img/文件下有很多验证码图片,想将他们展示出来 希望通过 http://127.0.0.1/img/1.png 这种形式访问到对应图片,刚开始nginx中配置如下 ...
- IOS HTML点击时有背景阴影
在写H5时, IOS上的div点击会出现阴影, 如何去掉阴影呢? 在div的css属性中添加下面一条: -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
- 10. Go语言—for循环
一.for循环 for 初始化语句;条件判断;变量修改 for i := 0; i < 100; i++{ fmt.Printf('i=%d\n',i) } // C 的 while 一样 fo ...
- markdown 编辑格式
# h1## h2### h3#### h4##### h5###### h6 *em* **strong** ***斜体加粗*** ~~待删除~~ 无序列表,用 * + - 都可以表示,[可以用四个 ...
- 201871010110-李华《面向对象程序设计(java)》第十七周学习总结
博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...
- linux-部署2
gunicorn+supervisor 1.gunicorn 安装: pip3 install gunicorn 配置: 两种方式:命令和文件,因为配置项比较多,所以放在文件里,启动时指明配置文件即可 ...
- 生成git的SSH公钥
1.右键,点击 git bash here 2.安装成功后设置用户和邮箱git config --global user.name "name"git config --glob ...
- Dockerfile命令整理
通过Dockerfile只做Docker镜像时,需要用到Dockerfile的命令,收集整理如下,以便后续翻阅参考. FROM 功能为指定基础镜像,并且必须是第一条指令. 如果不以任何镜像为基础,那么 ...