作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在开发一个基于 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
}
很遗憾,我对 XCode 和 Swift 知之甚少。我需要它的等效 Swift 4 代码。我感谢任何帮助。
最佳答案
正如 Hamish 所说,这是正确的。 compactMap(:) 在 Swift 4.1 中被引入检查 here在 Swift 4.0.x 中,它的 flatMap(:) 检查 here但现在已弃用。
let receiptItems = nonCancelledReceiptsInfo.flatMap { ReceiptItem(receiptInfo: $0) }
return receiptItems.flatMap {
if let expirationDate = $0.subscriptionExpirationDate {
return (expirationDate, $0)
}
return nil
}
关于swift - 如何修复 `Value of type ' [ReceiptInfo ]' (aka ...) has no member ' compactMap'`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48731723/
我正在开发一个基于 Swift3 构建的项目,然后升级到 Swift 4。通过将 Toolchain > Swift Development Snapshot 切换到 XCode 9.2,XCode
我是一名优秀的程序员,十分优秀!