返回(id)为零;有效?

时间:2013-09-13 00:55:48

标签: objective-c

我想从期望获得nil的函数返回id。当我编写块时,编译器会抱怨这个。那么,return (id)nil;可以吗?或者我误解了nilid是什么?

1 个答案:

答案 0 :(得分:4)

有效。 nil“应该”是id的类型(实际上由于某种原因它是void *)但是将nil投射到id是完全安全的。同样适用于0NULL(它们都只是0)。并将消息发送到0结果定义的行为(nop),以便一切正常。

我有same problem关于返回nil的块,这是answer的引用 :

  

您正在为块文字使用推断的返回类型,但是您   不必。

     

删除该错误的正确方法是为其提供返回类型   块文字:

id (^block)(void) = ^id{
    return nil;
};