【发布时间】:2012-01-16 02:31:42
【问题描述】:
如果我在一个返回值的函数中没有返回任何东西,编译器会警告该函数没有返回任何东西。
但如果我在函数中调用abort(),编译器不会发出警告。我怎样才能像这样标记自己的函数。
【问题讨论】:
-
如果不想返回值,让方法返回
void。如果您确实想在某些情况下返回一个值,但不是全部,请选择您的返回类型可以采用的值,这意味着“无值”或类似的。当方法需要返回时,你永远不应该故意忽略返回,这是不好的做法,在 Objective-C 中从来没有真正必要。 -
@darvids0n 这通常在调用内部执行
@throw的实用程序函数时需要。 -
您可以使用
[NSException raise]来完成同样的事情。编译器是否仍然使用这种方法发出警告? -
编译器无法识别
-raise:...方法,所以它仍然会发出警告。我想要一个小的内联实用程序函数(或方法),它可以根据上下文自动进行一些前/后处理。 -
如果你将它包装在
@try/@catch[/@finally] 块中,也许这会消除警告。不管怎样,你似乎很喜欢使用__noreturn__,所以我就这样吧。
标签: objective-c c function function-attributes