在 Xcode 14 beta 4(也许还有更早的 beta 版本,但我没有检查)中,我看到有关未使用的返回值的警告,即使这些方法用@discardableResult. 这些警告仅针对async方法,并且据我所知,仅在UIKit类的扩展中出现:
import UIKit
extension UIView {
@discardableResult
func discardableUIKit() async -> Int {
42
}
@discardableResult
func discardableUIKit() -> Int {
42
}
}
extension NSObject {
@discardableResult
func discardableNSObject() async -> Int {
42
}
@discardableResult
func discardableNSObject() -> Int {
42
}
}
extension NSNumber {
@discardableResult
func discardableNSNumber() async -> Int {
42
}
@discardableResult
func discardableNSNumber() -> Int {
42
}
}
func test() {
UIView().discardableUIKit()
NSNumber().discardableNSObject()
NSNumber().discardableNSNumber()
Task {
await UIView().discardableUIKit() // Result of call to function returning 'Int' is unused
await NSNumber().discardableNSObject()
await NSNumber().discardableNSNumber()
}
}
Run Code Online (Sandbox Code Playgroud)
我在 Xcode 13 中没有看到这些警告。这是一个错误还是 Xcode 14/Swift 5.7 中我不知道的新内容?
正如评论中提到的,这是 Swift 5.7 的一个错误,会影响任何用@MainActor. 据推测,它会在 GM 发布之前修复,但它仍然存在于 Xcode 14 beta 5 中。
| 归档时间: |
|
| 查看次数: |
687 次 |
| 最近记录: |