Swift 3编译器警告我一个未使用的结果,即使我用@discardableResult
标记了该函数。
仅在使用?
语法在可选变量上调用函数时才会发生。
为简化问题,我创建了此示例代码。 (我不得不把它放在一个项目中,因为警告没有在操场上显示。)
class Foo {
@discardableResult func bar() -> String? {
return "bar"
}
}
class Tester {
func doSomething() {
var foo: Foo?
foo = Foo()
foo?.bar() //Warning: Expression of type 'String?' is unused
foo!.bar() //No warning
}
}
答案 0 :(得分:1)
这是一个已知的错误(https://bugs.swift.org/browse/SR-1681),虽然Swift帮派似乎认为它已经解决了。也许修复还没有进入Xcode,或者可能它们只是错了。
UPDATE 我们得到了官方消息:修复程序将从Xcode 8.3开始显示。