Objective-C基本语法和数据类型 – Objective-C开发教程

上一章Objective-C开发教程请查看:Xcode Target、Scheme、Build Settings、Porject和Workspace介绍
这一章我们开始讨论OC的编程内容,首先是了解OC的基本语法,然后介绍OC的数据类型,如果你之前学过其它语言,那么这两个内容可以很容易学会。
Objective-C基本语法首先看下面的代码:

NSLog(@"Hola, Espanol!");

OC程序由一些列的token组成,例如NSLog是一个token,括号也是一个token。上面的OC代码是一个语句,每个语句以分号; 结束。NSLog是一个方法,方法的参数是一个字符串字面量,OC中的字符串使用@加上引号,如@” str” 。
Objective-C标识符
【Objective-C基本语法和数据类型 – Objective-C开发教程】标识符用来表示一个变量、函数、类等,OC的标识符和其它语言的标识符命名是一样的,以字母或下划线_开始,后跟一个或多个字母、下划线或数字。OC标识符不允许使用标点字符如@、$等,OC是一个区分大小写的语言,标识符的命名推荐使用驼峰的方式,如:
myNameuserNamemyEmailboxHeightimgWidth

Objective-C中的关键字
OC中的保留关键字不能用作自定义的变量名、函数名等,OC中所有的保留关键字如下表:
autoelselongswitch
breakenumregistertypedef
caseexternreturnunion
charfloatshortunsigned
constforsignedvoid
continuegotosizeofvolatile
defaultifstaticwhile
dointstruct_Packed
doubleprotocolinterfaceimplementation
NSObjectNSIntegerNSNumberCGFloat
propertynonatomic; retainstrong
weakunsafe_unretained; readwritereadonly
Objective-C数据类型数据类型是用来限制变量的储存的,变量用于储存数据,而数据类型指定变量该以什么方式储存数据,数据的长度大小等(类似于不同类型的箱子可以装不同数量的书)。数据类型一般用于声明变量、函数返回值、函数参数等。OC的数据类型可分为以下几种:
  • 基本数据类型:一般用于算法运算,主要是整数类似和浮点类型,例如int、char、short、long、float、double等。
  • 枚举类型:一个枚举类型的变量,一般来说只能取其定义的值之一。
  • void类型:空类型,表示没有值,或者可以说是一个超级泛型。
  • 派生类型:包括指针类型、数组类型、结构类型、联合类型和函数类型,其中函数的类型指定函数的返回值类型。
Objective-C整数类型
下面介绍OC整数类型的储存大小,以及值范围:
  • char:大小为1字节,范围为-128到127,或0到255.
  • unsigned char:1字节,0到255.
  • signed char:1字节,-128到127.
  • int:2或4字节,一般认为是4字节,-32,768到32,767 或 -2,147,483,648到2,147,483,647。
  • unsigned int:2或4字节,0到65,535 或 0 到 4,294,967,295。
  • long:4字节(应该是8字节),-2,147,483,648 到 2,147,483,647。
  • unsigned long:4字节(应为8字节),0 到 4,294,967,295。
我们可以使用sizeof()操作符获取一个数据类型的大小(类型为unsigned long),如sizeof(int)返回4,如果value是一个数组变量,sizeof(value)返回该数组的大小,如果value是一个指针,则返回8,OC使用一个long类型储存指针(C语言使用的是int的长度)。
Objective-C浮点类型
下面是OC中可用的浮点类型:
  • float:单精度浮点类型,大小为4字节,从1.2E-38到3.4E+38,精度为6位小数。
  • double:双精度类型,大小为8字节,从2.3E-308到1.7E+308,精度为15位小数。
  • long double:大小为10字节,从3.4E-4932到1.1E+4932,精度为19位小数。
OC的头文件float.h定义了一些宏定义,允许你使用浮点类型相关的值。
void类型void类型一般可以在三个地方使用:
  • 函数返回值:返回值为void类型的的函数,表示什么值也不返回。
  • 函数参数:函数参数为void类型,表示什么参数也没有。
  • 作为指针类型:如void *obj,可以作为一个泛型类型使用。

    推荐阅读