简介: 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更新--简化对象定义相关推荐

  1. openerp经典收藏 对象定义详解(转载)

    对象定义详解 原文地址: http://shine-it.net/index.php/topic,2159.0.html http://blog.sina.com.cn/s/blog_57ded94e ...

  2. java jpa更新数据_Java如何使用JPA更新实体对象?

    在此示例中,您将学习如何在JPA中更新实体对象.我们使用该EntityManager.merge()方法来更新实体.此方法将要保存的实体作为参数,然后将合并的实体作为结果返回. 您可以在下面的代码片段 ...

  3. JS:ES6-4 简化对象与箭头函数

    简化对象代码示例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  4. ES6-ES11-第一部分-let、const、解构赋值、模板字符串、简化对象写法、箭头函数、函数参数默认值、rest 参数、扩展运算符、Symbol、迭代器、生成器、Promise、Set、Map

    根据视频进行整理 [https://www.bilibili.com/video/BV1uK411H7on?p=1] 视频资源(百度网盘): 链接:[https://pan.baidu.com/s/1 ...

  5. Geometry(几何对象定义空间位置和关联几何形状)

    Geometry 描述 几何对象定义空间位置和关联几何形状. 讨论 在许多地理处理工作流中,您可能需要使用坐标和几何信息运行特定操作,但不一定想经历创建新(临时)要素类.使用光标填充要素类.使用要素类 ...

  6. 使用多种方式导出Salesforce Object Definitions对象定义表

    [前言]:前段时间被一位刚入行的同学私信问到"如何快速导出ERD和对象定义表"的问题,KT一波后,明显感受到那位同学使用高效工具后的喜悦(至少节省了大半天的时间).如果说我们把工具 ...

  7. .Net Framework 4.5.1 ASP.NET MVC 5 下新建视图报“错误 运行所选代码生成器时出错 无法检索元数据 没有为该对象定义无参数构造函数”...

    当在控制器中新建视图的时候,选择的视图界面如下: 执行添加后报如下错误: 错误的内容为: 错误 运行所选代码生成器时出错 无法检索"XXX"的元数据 没有为该对象定义无参数构造函数 ...

  8. 区分一下强制类型转换运算符重载/赋值运算符重载/对象定义的赋值

    这三个名字可能很绕,看着也很不一样,但其实是三个很容易混淆的概念,并且经常在实际编程中遇到.这里拿出来比较一下. 首先是强制类型转换运算符的重载,作用是当前对象向其他类型的转换,常见的形式是 oper ...

  9. SQL Server中授予用户查看对象定义的权限

      在SQL Server中,有时候需要给一些登录名(用户)授予查看所有或部分对象(存储过程.函数.视图.表)的定义权限存.如果是部分存储过程.函数.视图授予查看定义的权限,那么就像下面脚本所示,比较 ...

最新文章

  1. SQL Server Lock Escalation - 锁升级
  2. 量子计算机人类意识云,意识上传-人类距离永生还要多久(大脑的工作原理很有可能与量子计算机一致)...
  3. linux测试nvme性能,使用Python测试NVMe吞吐量
  4. JVM-03内存区域与内存溢出异常(下)【OutOfMemoryError案例】
  5. LAMP+LNMP(三)Apache(httpd)安装实践
  6. mysql 排序_MySql的几种排序方式
  7. OpenDiscussion_DataDrivenDesign
  8. 动态规划之-最大子段和
  9. 点赞!刘强东:无论京东员工遭遇何种不幸,将负责其子女费用到22岁
  10. anconda设置镜像源_管理2000+Docker镜像,Kolla是如何做到的
  11. 一周第四次课(3月22日)
  12. ubuntu 卸载python_如何在各种环境下正确安装python——Linux
  13. pycharm 连接SQL
  14. 《OpenGL编程指南第7版》3视图
  15. HTTP状态码滑稽表情包
  16. ansible set_fact模块
  17. Unity零基础到入门 ☀️| 游戏引擎 Unity 从0到1的 系统学习 路线【全面总结-建议收藏】!
  18. 适用于DSP的四阶矩阵求逆算法
  19. 项目经理需要的基本技能
  20. 安卓开发仿有道词典和谷歌翻译词典软件在线输入翻译源码下载

热门文章

  1. 尚洋优选健康美电商平台启动仪式在广州召开
  2. 报告指出数据中心效率有所提高
  3. spring源码分析,聊聊PropertyPlaceholderConfigurer
  4. 分析一下shell(转)
  5. python中的ix是啥_python ix什么意思
  6. c++ string分割字符串split_python 字符串和文本处理
  7. python与云计算的关系_python map reduce与云计算map/reduce之间的关系?
  8. 怎样用Jquery实现拖拽层,并实现网站自定义化模块功能?
  9. android 1396x750设计图,移动端的适配|切图|标注
  10. html中加法,javascript 实现加法运算详解