どのようにanyオブジェクトをswift 3で文字列に変換できますか?これは古いバージョンでは非常に簡単です。swift 3 - ios:anyObjectを文字列に変換する
var str = toString(AnyObject)
私はANYOBJECTはオプション値ではないことを確信している場合でも、私はString(AnyObject)
を試してみましたが、出力は常にオプションです。
どのようにanyオブジェクトをswift 3で文字列に変換できますか?これは古いバージョンでは非常に簡単です。swift 3 - ios:anyObjectを文字列に変換する
var str = toString(AnyObject)
私はANYOBJECTはオプション値ではないことを確信している場合でも、私はString(AnyObject)
を試してみましたが、出力は常にオプションです。
コンパイラは、あなたとあなたのコードを置き換えることを示唆していますもともと文字列ではないかもしれないものを文字列として格納するよりも。
let s = str as? String ?? ""
これ以外の場合は、上記/下の回答でエラーを特定して捨てる方法があります。
これを試してみてください -
var str:AnyObject?
str = "Hello, playground" as AnyObject?
if let value = str
{
var a = value as! String
}
OR
var a = str as? String
let a = "Test" as AnyObject
guard let b = a as? String else { // Something went wrong handle it here }
print(b) // Test
を試してみてくださいここにあなたのための3つのオプションです:
オプション1 - 許可すれば
if let b = a as? String {
print(b) // Was a string
} else {
print("Error") // Was not a string
}
オプション2 - ガード
guard let b = a as? String
else {
print("Error") // Was not a string
return // needs a return or break here
}
print(b) // Was a string
オプション3ましょう - としましょう?あなたは黙って、むしろ空の文字列で失敗したい状況がある場合
let s = String(describing: str)
もう一つのオプションが利用可能である:(null合体演算子は)
let b = a as? String ?? ""
print(b) // Print a blank string if a was not a string
ありがとうございました – Anthony
'AnyObject'は' as! 'を使用している場合は値を持っている必要があります。そうでなければクラッシュします。 –