学习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。