调用一个函数,该函数采用我不打算使用的完成处理程序,我是否使用 nil、NULL 或其他东西?



调用一个具有完成处理程序作为参数之一的方法时,如果我不打算使用它,什么是适当的参数?例如

 [self.navigationController dismissViewControllerAnimated:YES completion:NULL];

有很多例子说明了零和零之间的差异,我认为零是零的,因为我认为完成处理程序更像是C 的东西,而不是Objective-C,但我可能会吠叫错误的树。/p>

我使用null,nil还是其他?

编辑:抱歉,我应该更加清楚,我知道零和空是等效的,并且将nil用于对象和指针的零是惯例。我在问更多有关完成处理程序的方法。

xcode具有可用于回答此问题的"跳转到定义"功能。

nil开始,将我们带到mactypes.h

#define nil __DARWIN_NULL

遵循 __DARWIN_NULL to _types.h我们有

#define __DARWIN_NULL ((void *)0)

NULL开始,将我们带到stddef.h

#define NULL ((void*)0)

所以nilNULL是同一件事。按照惯例,nil用于对象,NULL用于其他指针类型。

完成处理程序将block作为参数,而block是一个客观-C对象,因此,按照惯例,应在不需要完成块时使用nil

苹果在其至少某些Objective-C文档中使用null。这是一个例子。

有关Objective-C中零与零的一般讨论,请参阅此信息。

我刚刚在OBJ-C中使用NULL来匹配Apple的文档。在Swift中,使用NIL。

相关内容

  • 没有找到相关文章

最新更新