我想nil从一个期望得到的函数返回id。当我编写块时,编译器会抱怨这个。那么,可以return (id)nil;吗?还是我对什么nil和id是什么有误解?
1 回答
4
这是有效的。nil“应该”是类型id(实际上是void *出于某种原因),但投射nil到. 是完全安全的id。同样适用于0and NULL(它们都只是0)。并将消息发送到0结果定义的行为(nop),所以一切都很好。
我对块中的返回有同样的问题,这是来自答案nil的引用
:
您正在为块文字使用推断的返回类型,但您不必这样做。
消除该错误的正确方法是为块文字提供返回类型:
id (^block)(void) = ^id{
return nil;
};
于 2013-09-13T00:58:34.900 回答