


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】怎么在Objective-C中使用语法糖
今天就跟大家聊聊有关怎么在Objective-C中使用语法糖,可能很多人都不太了解,为了让大家更加了解,在下给大家总结了以下内容,希望大家根据这篇文章可以有所收获。语法糖语法糖(Syntacticsugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(PeterJ.Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。——维基百科需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换;而且可以提高开发编码的效率。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会,本文在简单的介绍OC语法糖的同时也会跟大家分享下我们使用过程中发现的'新'问题。下面话不多说了,来一起看看详细的介绍吧。语法糖的自白老班:为了传达教育局和学校的教育精神我来讲几句。老班:下面我要讲啦啊。老班:我要讲的是教育局和学校刚传达的规定。老班:最近校长发现迟到学生越来越多。老班:为了维护教学秩序,学校制定了新校规。老班:小明:说人话!老班:从明天起7点钟准时到校上课!老班巴拉巴拉讲了一堆,其实只是要表达*从明天起7点钟准时到校上课!*虽然最终能表达出效果,但是老班说的累小明们听着也烦。举这个例子可能比较极端,至少我没有遇到这么啰嗦的老师。但在编程语言中的确有不少让程序员感到罗嗦的语法,让人不能忍,这个时候语法糖就派上了用场。比如OC取数组元素:id
element
=
[array1
objectAtIndex:0];OC语法糖:你看,我是不是写起来很方便?id
element
=
array1[0];OC语法糖:往下看,我还能做更多呢。OC语法糖@[]和@{}NSArray一般数组的初始化和访问数组元素是这样的://
NSArray
的
alloc
初始化
NSArray
*array1
=
[[NSArray
alloc]
initWithObjects:@"a",
@"b",
@"c",
nil];
//
NSArray
的便捷构造
NSArray
*array2
=
[NSArray
arrayWithObjects:@"1",
@"2",
@"3",
nil];获取数组中的元素可以这样的://
获取相应索引的元素
id
element
=
[array1
objectAtIndex:0];
NSLog(@"array1_count
=
%d,
array[0]
=
%@",[array1
count],
element);如果使用语法糖,可以这样写://
NSArray的定义
NSArray
*array
=
@[@"lu",
@"da",
@"shi",
@YES,
@123];
int
count
=
(int)[array
count];
for
(int
i
=
0;
i
<
count;
i++)
{
NSLog(@"%@",
array[i]);
}NSDictionary字典的初始化一般是这样的:NSDictionary
*dictionay
=
[NSDictionary
dictionaryWithObjectsAndKeys:@"value1",
@"key1",
@"value2",
@"key2",
nil];
id
value
=
[dictionay
objectForKey:@"key1"];
NSLog(@"key1
=>
%@",
value);我们还可以这样简化:NSDictionary
*dictionary
=
@{
@"key0"
:
@"value0",
@"key1"
:
@"value1",
@"key2"
:
@"value2"
};
NSLog(@"key2
=>
%@",
dictionary[@"key2"]);事实上[]和{}在JSON数据格式中最常见了,[]一般封装一个数组,{}一般封装一个整体对象。NSNumber一般写法是这样的:NSNumber
*intNumber
=
[NSNumber
numberWithInt:123];
NSNumber
*floatNumber
=
[NSNumber
numberWithFloat:12.3];
NSNumber
*charNumber
=
[NSNumber
numberWithChar:@('a')];语法糖简化写法:NSNumber
*a
=
@123;
NSNumber
*b
=
@12.3;
NSNumber
*c
=
@('a');
NSLog(@"a
=
%@,
b
=
%@,
c
=
%@",
a,
b,
c);.点语法再用数组NSArray*array=@[@"lu",@"da",@"shi",@YES,@123];举例。想要获取数组中有多少个元素,我们平时都是怎么做的?[arraycount]还是array.count?老司机们思索片刻后说到:好像都用过,但是...我们知道在OC中[]和.分别代表调用方法和属性,看申明明明是属性呀,怎么可以用.方法?从OC2.0开始只要符合系统默认setter、getter书写格式的方法都可以使用.点语法,属性是一对getter、setter方法,点语法是属性的另一种调用格式,就是语法糖方法。这么做的目的只有一个,就是增加可读性、兼容常见用法减少代码报错!OC语法糖带来的'坑'一般我们认为语法糖带来了方便,特别是对于字典的初始化直接是key:value的赋值方式比dictionaryWithObjectsAndKeys这种反人类的方式友好的多。但真的没有其他什么问题吗?看下下面两个定义及运行结果:可见dictionaryWithObjectsAndKeys如果遇到value为nil的情况,后续key-value不会入库直接当做末尾nil结束初始化;而语法糖的方式就直接崩溃了,对崩溃了。所以使用语法糖还需要注意数据合法性问题,nil会造成意外的崩溃哦!基本原理语法糖就是语言中的一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位招聘考试试卷及答案
- 江苏苏州太仓市2025届小升初总复习数学测试题含解析
- 2025年艺术设计专业本科生考试试卷及答案
- 2025年英语四级考试试卷及答案
- 2025年体育教师资格考试试卷及答案
- 辽宁师范高等专科学校《史书选读》2023-2024学年第二学期期末试卷
- 山东省济南市部分区县2024-2025学年高三下学期期初检测试题物理试题含解析
- 辽宁省沈阳市苏家屯区市级名校2025年初三百日冲刺考试语文试题含解析
- 外交官离婚补偿协议及子女抚养、教育费用协议
- 跨界合作自媒体品牌账号整体转让协议
- 客货线铁路隧道锚杆施工作业指导书
- 箱涵工程监理实施细则
- 公路养护的高级工复习题
- 三人合伙经营协议书 doc 三人合伙经营协议书实用版(六篇)
- 葡萄酒品尝学第八章-2013
- JJF 1793-2020海水营养盐测量仪校准规范
- GB/T 20080-2017液压滤芯技术条件
- 超音速流动与燃烧的大涡模拟基础课件
- 归档文件目录
- NYT 393-绿色食品 农药使用准则
- 偏心块振动式土壤夯实机的结构设计说明
评论
0/150
提交评论