我正在开发一个基于Swift3的项目,然后升级到Swift 4.通过切换Toolchain > Swift Development Snapshot到XCode 9.2,XCode显示3个与以下相关的错误compactMap:
错误:类型'[ReceiptInfo]'(又名'Array>')的值没有成员'compactMap'
let receiptItems = nonCancelledReceiptsInfo.compactMap { ReceiptItem(receiptInfo: $0) }
return receiptItems.compactMap {
if let expirationDate = $0.subscriptionExpirationDate {
return (expirationDate, $0)
}
return nil
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我对XCode和Swift了解不多.我需要等效的Swift 4代码.我感谢任何帮助.
正如哈米什所说,这是正确的。CompactMap( :) 是在 Swift 4.1 中引入的,在 Swift 4.0.x 中检查这里,它的 flatMap( :) 检查这里,但现在已弃用。
let receiptItems = nonCancelledReceiptsInfo.flatMap { ReceiptItem(receiptInfo: $0) }
return receiptItems.flatMap {
if let expirationDate = $0.subscriptionExpirationDate {
return (expirationDate, $0)
}
return nil
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4454 次 |
| 最近记录: |