Swift 为什么编译器在标记为@discardableResult的函数上警告未使用的结果?
Swift 3编译器正在警告我有未使用的结果,尽管我已经用Swift 为什么编译器在标记为@discardableResult的函数上警告未使用的结果?,swift,Swift,Swift 3编译器正在警告我有未使用的结果,尽管我已经用@discardableResult标记了该函数 它仅在使用?语法对可选变量调用函数时发生 为了简化这个问题,我创建了这个示例代码。(我不得不把它放在一个项目中,因为警告没有出现在操场上。) 这是一个已知的bug(),尽管Swift帮派似乎认为它已经解决了。也许修复程序还没有进入Xcode,或者他们只是错了 更新我们得到了官方消息:修复程序将从Xcode 8.3开始出现 已知错误,但声称已解决。如果不是的话,你应该告诉他们。虽然也许这一个
@discardableResult
标记了该函数
它仅在使用?
语法对可选变量调用函数时发生
为了简化这个问题,我创建了这个示例代码。(我不得不把它放在一个项目中,因为警告没有出现在操场上。)
这是一个已知的bug(),尽管Swift帮派似乎认为它已经解决了。也许修复程序还没有进入Xcode,或者他们只是错了
更新我们得到了官方消息:修复程序将从Xcode 8.3开始出现 已知错误,但声称已解决。如果不是的话,你应该告诉他们。虽然也许这一个(我的)是要评论的:谢谢你,@matt。行!我们得到了答案!修复程序将在Xcode 8.3中。
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
}
}