使用NULL参数的Objective C方法会发生什么?

时间:2012-02-16 20:22:31

标签: objective-c null

我是iOS编程的新手,并尝试学习一些基础知识和核心概念。我知道如果我们在一个NULL对象上调用一个方法,它不会给出任何错误,但只是该方法不会被调用。但是如果我有一个有效的对象并且我在它上面调用一个带有参数的方法,并且该参数在调用时为null。在那种情况下会发生什么?

e.g。

[self callMethod1:methodArgument];  //methodArgument is null at this time

-(void) callMethod1:(NSString *)methodArgument
{
  //Do Stuff here
}

另外,如果我们使用C / C ++会在同样的情况下发生什么?

任何答案/想法都将不胜感激。

由于 维克

1 个答案:

答案 0 :(得分:3)

这种情况没有什么特别之处,它只会以nil / 0为参数调用方法。
在C ++中,行为是相同的:如果传递空指针,该方法将获得一个空指针作为参数。

传递nil(这是通常用于指向Objectice-C对象的空指针的名称)是有意义的,例如:

[someClass setDelegate:nil]; // unregister delegate

请记住,您传递的是指针,而不是实例。