LLVM4更新--简化对象定义
简介: LLVM4.0 更新(在xcode4.4引入)中,添加了一些新的简便代码书写的方法
添加文字的数字,数组,字典,以及表达式的语法
得益于 LLVM 编译器 4.0 的更新,增加了许多新特性,其中包括更方便的代码输入。这一更新可大大提高写代码的效率。这要在定义时使用@符号,正如NSString定义操作一样。
1. 所有的 NSNumber 表达
从 Xcode 4.4 起,所有的 [NSNumber numberWithInt: 10] 之类的表达现在都可以写作 @10,
如:
// 单个字符
NSNumber *theLetterZ = @'Z'; // 相当于 [NSNumber numberWithChar:'Z']
// 整形
NSNumber *fortyTwo = @42; // 相当于 [NSNumber numberWithInt:42]
NSNumber *ftUnsigned = @42U; // 相当于 [NSNumber numberWithUnsignedInt:42U]
NSNumber *ftLong = @42L; // 相当于 [NSNumber numberWithLong:42L]
NSNumber *ftLongLong = @42LL; // 相当于 [NSNumber numberWithLongLong:42LL]
// 浮点
NSNumber *piFloat = @3.141592F;// 相当于 [NSNumber numberWithFloat:3.141592F]
NSNumber *piDouble = @3.141592;// 相当于 [NSNumber numberWithDouble:3.141592]
// 是 / 否
NSNumber *yesNumber = @YES; // 相当于 [NSNumber numberWithBool:YES]
NSNumber *noNumber = @NO; // 相当于 [NSNumber numberWithBool:NO]
2. 新的 NSArray, NSDictionary 输入方法
以前想要创建一个新的 NSDictionary, 你必须不厌其烦地输入:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:YES], @"backup",[NSNumber numberWithInt:7],@"daysToKeepBackup",@"foo",@"flags", nil];
现在只用输入:
NSDictionary *options = @{@"backup": @YES,@"daysToKeepBackup": @7,@"flags": @"foo"};就可以达到同样的效果。
NSArray 的输入方法也变得更简单:之前的
NSArray *items = [NSArray arrayWithObjects:@"item1",[NSNumber numberWithBool:YES],[NSNumber numberWithInt:12], nil];
现在只用输入:
NSArray *items = @[ @"item1", @YES, @12 ];
3. 嵌套表达式 (Boxed Expressions)
最新版本的 Objective-C 还提供了一种新的书写方式:
@( expression )
BOOL 和 int 的结果有时候需要被计算才能得到。这时候你便可以将表达式放入一对括号中。比如:
NSNumber *total = @(0.2f - 1.9f); //[NSNumber numberWithFloat:0.2f - 1.9f]
NSNumber *piOT = @(M_PI / 2); //[NSNumber numberWithDouble:(M_PI / 2)]
4. 创建新 property 不用再合成
升级到 Xcode 4.4 后,在头文件中创建的 @property 均无需再进行 @synthesize。Xcode 将自动合成。
@synthesize object = _object;
LLVM4更新--简化对象定义相关推荐
- openerp经典收藏 对象定义详解(转载)
对象定义详解 原文地址: http://shine-it.net/index.php/topic,2159.0.html http://blog.sina.com.cn/s/blog_57ded94e ...
- java jpa更新数据_Java如何使用JPA更新实体对象?
在此示例中,您将学习如何在JPA中更新实体对象.我们使用该EntityManager.merge()方法来更新实体.此方法将要保存的实体作为参数,然后将合并的实体作为结果返回. 您可以在下面的代码片段 ...
- JS:ES6-4 简化对象与箭头函数
简化对象代码示例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- ES6-ES11-第一部分-let、const、解构赋值、模板字符串、简化对象写法、箭头函数、函数参数默认值、rest 参数、扩展运算符、Symbol、迭代器、生成器、Promise、Set、Map
根据视频进行整理 [https://www.bilibili.com/video/BV1uK411H7on?p=1] 视频资源(百度网盘): 链接:[https://pan.baidu.com/s/1 ...
- Geometry(几何对象定义空间位置和关联几何形状)
Geometry 描述 几何对象定义空间位置和关联几何形状. 讨论 在许多地理处理工作流中,您可能需要使用坐标和几何信息运行特定操作,但不一定想经历创建新(临时)要素类.使用光标填充要素类.使用要素类 ...
- 使用多种方式导出Salesforce Object Definitions对象定义表
[前言]:前段时间被一位刚入行的同学私信问到"如何快速导出ERD和对象定义表"的问题,KT一波后,明显感受到那位同学使用高效工具后的喜悦(至少节省了大半天的时间).如果说我们把工具 ...
- .Net Framework 4.5.1 ASP.NET MVC 5 下新建视图报“错误 运行所选代码生成器时出错 无法检索元数据 没有为该对象定义无参数构造函数”...
当在控制器中新建视图的时候,选择的视图界面如下: 执行添加后报如下错误: 错误的内容为: 错误 运行所选代码生成器时出错 无法检索"XXX"的元数据 没有为该对象定义无参数构造函数 ...
- 区分一下强制类型转换运算符重载/赋值运算符重载/对象定义的赋值
这三个名字可能很绕,看着也很不一样,但其实是三个很容易混淆的概念,并且经常在实际编程中遇到.这里拿出来比较一下. 首先是强制类型转换运算符的重载,作用是当前对象向其他类型的转换,常见的形式是 oper ...
- SQL Server中授予用户查看对象定义的权限
在SQL Server中,有时候需要给一些登录名(用户)授予查看所有或部分对象(存储过程.函数.视图.表)的定义权限存.如果是部分存储过程.函数.视图授予查看定义的权限,那么就像下面脚本所示,比较 ...
最新文章
- SQL Server Lock Escalation - 锁升级
- 量子计算机人类意识云,意识上传-人类距离永生还要多久(大脑的工作原理很有可能与量子计算机一致)...
- linux测试nvme性能,使用Python测试NVMe吞吐量
- JVM-03内存区域与内存溢出异常(下)【OutOfMemoryError案例】
- LAMP+LNMP(三)Apache(httpd)安装实践
- mysql 排序_MySql的几种排序方式
- OpenDiscussion_DataDrivenDesign
- 动态规划之-最大子段和
- 点赞!刘强东:无论京东员工遭遇何种不幸,将负责其子女费用到22岁
- anconda设置镜像源_管理2000+Docker镜像,Kolla是如何做到的
- 一周第四次课(3月22日)
- ubuntu 卸载python_如何在各种环境下正确安装python——Linux
- pycharm 连接SQL
- 《OpenGL编程指南第7版》3视图
- HTTP状态码滑稽表情包
- ansible set_fact模块
- Unity零基础到入门 ☀️| 游戏引擎 Unity 从0到1的 系统学习 路线【全面总结-建议收藏】!
- 适用于DSP的四阶矩阵求逆算法
- 项目经理需要的基本技能
- 安卓开发仿有道词典和谷歌翻译词典软件在线输入翻译源码下载
热门文章
- 尚洋优选健康美电商平台启动仪式在广州召开
- 报告指出数据中心效率有所提高
- spring源码分析,聊聊PropertyPlaceholderConfigurer
- 分析一下shell(转)
- python中的ix是啥_python ix什么意思
- c++ string分割字符串split_python 字符串和文本处理
- python与云计算的关系_python map reduce与云计算map/reduce之间的关系?
- 怎样用Jquery实现拖拽层,并实现网站自定义化模块功能?
- android 1396x750设计图,移动端的适配|切图|标注
- html中加法,javascript 实现加法运算详解