在这段代码中,我try 将[RegisteredMediaAttachment]
映射到[BasicAttachmentInput]
,但只针对那些具有可解析uploadUrl
的项.
private func createSecondaryAttachments(
_ attachments: [RegisteredMediaAttachment]
) -> [BasicAttachmentInput] {
return attachments.compactMap {
guard let name = URL(string: $0.registration.uploadUrl) else {
return nil
}
return BasicAttachmentInput(
name: name,
contentType: $0.attachment.type.mime(),
sizeBytes: $0.attachment.data.count,
mediaId: $0.registration.media.id
)
}
}
然而,Swift 在return nil
线上抱怨说,'nil' is not compatible with closure result type 'BasicAttachmentInput'
这让我很惊讶.我希望该函数编译并减少映射结果,使其仅包含从compactMap
闭包返回的非nil
值.上面的代码片段有什么问题?