iOS开发笔记系列-基础1(数据类型与表达式)
学习iOS开发快两年了,去年完成MagViewer之后就因为公司的其他业务繁重,除了维护这个应用之外,只是断断续续地自己做一些实验开发,没有再发布新的应用,这里想整理一下学习过程中的笔记,以便加深印象及以后查阅,计划将这个系列分为基础和实践,基础侧重理论只是和自己的理解,实践则结合MagViewer来解决一些实际问题。
Objective-C的数据类型
Objective-C是苹果为iOS开发专门推出的一种程序设计语言,它是C语言的扩展,虽然后来又推出了swift,现在大多数应用还是用Objective-C开发,并且目前两种语言都能完整地开发一款应用。
这里先介绍Objective-C中的基本数据类型。
int类型
整数常量由一个或者多个数字的序列组成。序列前的负号表示该值是一个负数,数字中间不允许插入空格或者逗号。一个int类型书卷占用32位或者64位,具体取决于实际编译运行环境。整型常量一般是十进制的,如果其是以0开头如0112,则表示是八进制的,如果是以0x开头如0xFFE0,则表示其是十六进制的。
float类型
声明为float类型的变量可以存储包含小数位的值。要显示浮点值,可用NSLog转换字符%f或者%g,浮点常亮也可用科学计数法表示,值1.7e4就相当于1.7*10000。double类型与float类型非常相似,只是double类型的变量可存储的范围大概是float变量的两倍。
char类型
char类型可存储单个字符,将字符放入一对单引号中就能得到字符常量,这和C语言风格的字符串容易混淆,字符串是双引号中的任意个数字符。而且,字符串前面加上"@"字符,就会转换成NSString字符串对象。在NSLog调用中可以使用格式字符%c来显示char变量的值。
限定词:long, long long, short, unsigned, signed
如果直接把限定词long放在int声明前,那么所声明的整型变量在某些计算机上具有扩展的值域,long long int则具有更大的值域,甚至可以用long double,相应的,short int用来存储相当小的整数,这主要是从节约内存空间的角度考虑。unsigned限定词则表示声明的变量只用于保存正值,这也扩展了整型变量的范围。
id类型
id类型是Objective-C语言中特有的一种数据类型,它可以存储任何类型得对象,某种意义上说,它是一般对象类型,它是Objective-C中多态和动态绑定的基础。
Objective-C中的算术表达式
Objective-C中的算术表达式与其他程序设计语言一样,这里只记录一下其中的隐式转换,当表达式中的运算数都是整型的时候(这一情况还适用于short,unsigned,long整型),该运算就将在整数运算的规则下进行,因此,有乘法运算产生的任何小数部分都被删除。当表达式中至少有一个值是浮点变量或常量的时候,这一运算就作为浮点运算来处理。
类型转换运算符可以强制转换运算数类型,它比其他所有算术运算符(除开一元减号和一元加号运算符)的优先级都要高。如(int)20.1。
iOS开发笔记系列-基础1(数据类型与表达式)的更多相关文章
- iOS开发笔记系列-基础2(类)
面向对象编程总是离不开类和对象的,Objective-C也不例外,不过Objective-C中的类还有一些自己的独特点. 类的声明和定义 在iOS开发中,类的声明与定义通常都是分开的,类得声明通常存放 ...
- iOS开发笔记系列-基础4(变量与数据类型)
对象的初始化 对象的初始化方法一般都如下: -(id)init { self=[super init]; if(self){ ... } return self; } 这个方法首先会调用父类的初始化方 ...
- iOS开发笔记系列-基础3(多态、动态类型和动态绑定)
多态:相同的名称,不同的类 使不同的类共享相同方法名称的能力成为多态.它让你可以开发一组类,这组类中的每一个类都能响应相同的方法名.每个类的定义都封装了响应特定方法所需要的代码,这使得它独立于其他的类 ...
- iOS开发笔记系列-基础7(C语言特性)
Objective-C是C语言的扩展,因此,也具备很多C语言的基本特性,这里只罗列部分. 块(Blocks) 块是对C语言的一种扩展,它并未作为标准ANSI C所定义的部分,而是Apple添加到语言中 ...
- iOS开发笔记系列-基础6(预处理程序)
预处理程序提供了一些工具,使用这些工具更易于开发.阅读.修改程序,也易于将程序移植到不同的系统中.又称为宏. #define #define语句的基本用途之一就是给富豪名称指定程序常量.比如: #de ...
- iOS开发笔记系列-基础5(分类和协议)
分类 在Objective-C中,除了通过新建子类的方式来向类添加新方法外,还可以通过分类的方式.分类提供了一种简单的方式,将类的定义模块化到相关方法的组或分类中,它还提供了扩展现有类定义的简便方式, ...
- IOS科研IOS开发笔记学习基础知识
这篇文章是我的IOS学习笔记,他们是知识的基础,在这里,根据记录的查询后的条款. 1,UIScrollView能完毕滚动的功能. 示比例如以下: UIScrollView *tableScrollVi ...
- iOS开发技巧系列---详解KVC(我告诉你KVC的一切)
KVC(Key-value coding)键值编码,单看这个名字可能不太好理解.其实翻译一下就很简单了,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值.而不需 ...
- 【Swift】iOS开发笔记(二)
前言 这个系列主要是一些开发中遇到的坑记录分享,有助于初学者跨过这些坑,攒够 7 条发一篇. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯 ...
随机推荐
- MSSQL复制功能实现与Oracle数据库同步
1.分别建立链接对数据库进行操作,SQLServer可以用ADO.NET,操作Oracle可以用OLEDB或者用System.Data.OracleClient(需要添加引用才能用) 这种方案的优点就 ...
- mysql隔离机制
转 MySQL隔离级别 mysql-Innodb事务隔离级别-repeatable read详解(转)
- SpringContextHolder 静态持有SpringContext的引用(如何取得Spring管理的bean )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- I.MX6 Android Linux shell MMPF0100 i2c 设置数据
#!/system/bin/busybox ash # # I.MX6 Android Linux shell MMPF0100 i2c 设置数据 # 说明: # 本文主要记录通过shell脚本来设置 ...
- jquery通过ajax获取数据,控制显示的数据条数
效果图: 现在我们可以先看它的json数据,如图所示: 然后可以对应我们的代码进行理解. jquery通过ajax获取数据,并通过窗口大小控制显示的数据条数,以及可以根据 ...
- 我的WCF之旅(3):在WCF中实现双工通信
双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息.基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合.双工MEP又具 ...
- 55人班37人进清华北大的金牌教师之32条教育建言! z
他带的一个55人的班,37人考进清华.北大,10人进入剑桥大学.耶鲁大学.牛津大学等世界名校并获全额奖学金,其他考入复旦.南开等大学.不仅 如此,校足球冠军.校运动会总冠军.校网页设计大赛总冠军等6项 ...
- 犯罪构成三层次记忆口诀 zt
犯罪构成三层次记忆口诀 2012-02-17 来源:为你辩护网 浏览次数:232 0 众所周知,犯罪构成“四要件”和犯罪构成“三层次”(“三阶层”)都是分析具体刑事案件的辅助性工具.犯罪构成四要件是指 ...
- HDU 4009 Transfer water 最小树形图
分析:建一个远点,往每个点连建井的价值(单向边),其它输水线按照题意建单向边 然后以源点为根的权值最小的有向树就是答案,套最小树形图模板 #include <iostream> #incl ...
- pomelo环境搭建
在ubuntu上搭建pomelo环境 一 安装node.js 不要直接安装nodejs, 因为ubuntu上默认的nodejs版本是0.6的太老千万不要下tar包自己安装, 问题很多正确方法如下: ...