Id和nil
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
Objective-C语言中定义了一种新的标识对象的类型:
id
id类型指向了一个对象的实例,下面的代码声明了一个对象类型的变量’button’
id button;
当button
类型的对象最终被创建出来后,变量名button
指向了实例变量的数据,但是,在button
变量指向具体的值之前,它实际上不指向任何代码。那么button
应该指向什么呢?
为了解决这个问题,Objective-C语言定义了一个新的关键字:nil
,当定义了一个id
类型的变量并没有给它赋予任何具体值得时候,就将nil
赋值给button
,如下:
id button = nil;
在变量声明的时候就初始化成nil
。
在你给一个对象发送消息之前,你可以测试一下这个对象是否存在。如果测试失败,证明这个对象不存在,然后你就可以执行一些相关的代码去处理对象不存在时的状况。例如:
if (anObject != nil)
... /* send message */
else
... /* do something else */
头文件objc/objc.h
中定义了id
,nil
以及其他Objective-C语言中基本的数据类型。你需要在你的程序中使用#include < Foundation/Foundation.h >
将上述头文件导入程序。
在线练习
{$ activeFileHint $}