In order to convert a String
instance to a Data
instance in Swift you can use data(using:allowLossyConversion:)
, which returns an optional Data
instance.
Can the return value of this function ever be nil
if the encoding is UTF-8 (String.Encoding.utf8
)?
If the return value cannot be nil
it would be safe to always force-unwrap such a conversion.
UTF-8 can represent all valid Unicode code points, therefore a conversion of a Swift string to UTF-8 data cannot fail.
The forced unwrap in
is safe.
The same would be true for
.utf16
or.utf32
, but not for encodings which represent only a restricted character set, such as.ascii
or.isoLatin1
.You can alternatively use the
.utf8
view of a string to create UTF-8 data, avoiding the forced unwrap: