nilを期待する関数から戻りたいid。私がブロックを書いているとき、コンパイラはこれについて不平を言います。それで、大丈夫return (id)nil;ですか?nilそれとも、何と何であるかについて何か誤解していidますか?
1 に答える
4
有効です。nil「すべき」は のタイプですがid(実際にはvoid *何らかの理由でそうです)、 にキャストnilしても完全に安全idです。同様に and にも適用されます0(NULLそれらはすべて だけです0)。0そして、定義された動作 (nop) の結果にメッセージを送信して、すべてがうまくいくようにします。
ブロックでの返品について同じ問題があり、これは回答nilからの引用です
:
ブロック リテラルに推論された戻り値の型を使用していますが、そうする必要はありません。
そのエラーを取り除く正しい方法は、ブロック リテラルの戻り値の型を提供することです。
id (^block)(void) = ^id{
return nil;
};
于 2013-09-13T00:58:34.900 に答える