String.split(separator:) で Xcode Previews がコケる


SwiftUIで画面を実装中していたらXcode Previewsで表示していたプレビューが突然できなくなった。

Diagnosticsを開くとこんなエラー

Compiling failed: global function '__designTimeString(_:fallback:)' requires that 'String.Element' (aka 'Character') conform to 'ExpressibleByStringLiteral'

エラーの行も表示されるので当該箇所を見たら大体こんな感じ

let str = ~
let array = str.split(separator: "\n") // ← ここでエラー発生
    .map(String.init)

どうやら"\n"(String Literal)がXcode Previews上だとCharacterとして認識されないらしい(なぜ?)

解決策

Characterであることを明示すれば良い。

let array = str.split(separator: "\n" as Character)
// or
let array = str.split(separator: Character("\n"))

参考

2020/09/21追記

Xcode12(Swift5.3)でも直っていない模様