什么是Swift中的@discardableResult声明的ObjC版本

时间:2016-11-01 04:17:54

标签: ios objective-c swift llvm

在Swift 3中,如果没有使用返回值,则会出现警告。 @discardableResult声明将禁止该功能。

如何在ObjC文件中声明,与__attribute__((warn_unused_result))

相反

1 个答案:

答案 0 :(得分:4)

默认情况下,在ObjC中忽略函数的返回值,对于Swift< 3。

如果您没有捕获方法返回的内容,则不会发出警告。但是从swift 3开始,你必须使用返回值,如果你不想要,可以使用@discardable result属性。

在ObjC中,如果你想警告你可以使用warn_unused_result属性。

-(int) mymethod : (int) a __attribute__((warn_unused_result)){

    return  2;

}

- (BOOL)doSomething  {

    return 2;
}



[self doSomething];
[self mymethod:2];//warning:ignoring return value of a function