SwiftでString
インスタンスをData
インスタンスに変換するには、data(using:allowLossyConversion:)
を使用できます。これにより、オプションのData
インスタンス。
エンコーディングがUTF-8の場合、この関数の戻り値はnil
になる可能性があります(String.Encoding.utf8
)?
戻り値をnil
にできない場合は、そのような変換を常に強制的にアンラップするのが安全です。
UTF-8はすべての有効なUnicodeコードポイントを表すことができるため、Swift文字列からUTF-8データへの変換は失敗しません。
強制アンラップイン
let string = "some string .."
let data = string.data(using: .utf8)!
安全です。
同じことが.utf16
または.utf32
にも当てはまりますが、.ascii
または.isoLatin1
などの制限された文字セットのみを表すエンコーディングには当てはまりません。
または、文字列の.utf8
ビューを使用して、UTF-8データを作成し、強制的なアンラップを回避することもできます。
let string = "some string .."
let data = Data(string.utf8)