草庐IT

discardableResult

全部标签

swift - 为什么编译器会警告标记为@discardableResult 的函数有未使用的结果?

Swift3编译器警告我一个未使用的结果,即使我用@discardableResult标记了函数。它仅在使用?语法对可选变量调用函数时发生。为了简化问题,我创建了这个示例代码。(我不得不把它放在一个项目中,因为警告没有在Playground上显示。)classFoo{@discardableResultfuncbar()->String?{return"bar"}}classTester{funcdoSomething(){varfoo:Foo?foo=Foo()foo?.bar()//Warning:Expressionoftype'String?'isunusedfoo!.bar(

swift - 在 Swift 中使用@discardableResult 作为闭包

Swift3有introduced函数的@discardableResult注释禁用未使用函数返回值的警告。我正在寻找一种方法来消除此关闭警告。目前,我的代码如下所示:funcf(x:Int)->Int->Int{funcg(_y:Int)->Int{doSomething(with:x,and:y)returnx*y}returng}在不同的地方,我调用了一次f来获得一个闭包g,然后我重复调用它:letg=f(5)g(3)g(7)g(11)在大多数地方,我只对doSomething的嵌套调用的副作用感兴趣,而不对闭包g的返回值感兴趣。使用Swift3,我的项目中现在有许多关于未使用结

objective-c - Swift 3.1 中的 `@discardableResult override init()` 抛出 `warn_unused_result` Objective-C 警告

我有一个桥接到Objective-C的Swift类。即使使用@discardableResult,它也会在Objective-C类的构建中抛出此警告:Ignoringreturnvalueoffunctiondeclaredwith'warn_unused_result'attribute有没有什么办法可以解决这个问题?这是在带有Swift3.1的Xcode8.3中。 最佳答案 转换为(void)应该消除警告:(void)[SingletonClasssharedInstance]; 关

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

在Swift3中,当没有使用返回值时会有警告。@discardableResult声明将抑制该功能。我如何在ObjC文件中声明它,意味着,与__attribute__((warn_unused_result))相反 最佳答案 在ObjC和Swift如果您不捕获方法返回的内容,则不会出现警告。但是从swift3开始,你必须使用返回值,如果你不想,使用方法的@discardableresult属性。在ObjC中,如果你想警告你可以使用warn_unused_result属性。-(int)mymethod:(int)a__attribut