Xcode 12.5 编译器错误,'nil'不能在期望类型 'someType' 的上下文中使用



这两个代码片段之间有什么区别?

cellModels.append(contentsOf: [].compactMap { $0.condition ? .init(text: $0.text, backgroundColor: $0.color, action: $0.action) : nil })

cellModels.append(contentsOf: [].compactMap {
if $0.condition {
return .init(text: $0.text, backgroundColor: $0.color, action: $0.action)
} else {
return nil
}
})

更新到Xcode 12.5后,第一个代码不再编译

游乐场的一些代码片段。在Xcode 12.5 中试用

struct SomeStruct {
var str: String
}
var arr1: [SomeStruct] = []
arr1.append(contentsOf: ["123123", "2", "332", "124r132q", "123"].compactMap { $0.count == 3 ? .init(str: $0) : nil })
arr1.append(contentsOf: ["123123", "2", "332", "124r132q", "123"].compactMap {
if $0.count == 3 {
return .init(str: $0)
} else {
return nil
}})

将代码分为两部分有助于

var mappedArray: [SomeStruct] = ["123123", "2", "332", "124r132q", "123"].compactMap { $0.count == 3 ? .init(str: $0) : nil }
arr1.append(contentsOf: mappedArray)

相关内容

  • 没有找到相关文章

最新更新