在Swift 2.x的时候,带返回的方法我们如果在调用的时候后面使用到返回的参数,编译器不会有任何的警告,想要编译器给出警告的话需要自己在方法前面添加属性@warn_unused_result ,如

[Swift] 纯文本查看 复制代码
@warn_unused_result func doSomething() -> Bool {
  return true
}


这时候调用这个方法没有使用返回参数的情况下编译器就会给出警告:

[Plain Text] 纯文本查看 复制代码
Result of call to ‘doSomething()’ is unused


到了 Swift 3.0 我们不需要这样写了,默认情况下编译器就是会去检查返回参数是否有被使用,没有的话就会给出警告。如果你不想要这个警告,可以自己手动加上 @discardableResult,如:

[Swift] 纯文本查看 复制代码
@discardableResult func doSomething() -> Bool {
  return true
}


这样一来一切又恢复正常了。

迁移到Swift 3.0之@discardableResult Swift 3.0 Migration Unused Result

迁移到Swift 3.0之@discardableResult Swift 3.0 Migration Unused Result - 敏捷大拇指 - 迁移到Swift 3.0之@discardableResult Swift 3.0 Migration Unused Result





升级到Swift 3.0的适配填坑相关内容

如何向Swift 3.0进行数据迁移升级?Migrating Advice, tips,and warnings

Xcode 8 & Swift 3.0 迁移适配实战经验总结,含第三方库

Swift 3 迁移工作总结

是时候适配 Swift 3 了吗——专访 LINE iOS 开发工程师王巍

迁移到Swift 3.0之@discardableResult Swift 3.0 Migration Unused Result

Swift 3 迁移适配总结

AFNetworking 3.0迁移指南 AFNetworking 3.0 Migration Guide

报告:Swift 3.0 已出坑,适配 iOS 10、项目迁移 Swift 3.0 问题总结

]适配 Swift 3 的一点小经验和坑

Swift 3,这些陷阱在等你,来看我填坑吧 Swift 3 migration pitfalls

Swift 4.0

Swift 3.0 开发文档

Swift升级迁移适配填坑




参考:http://useyourloaf.com/blog/swift-3-warning-of-unused-result/

作者:Mellong