簡體   English   中英

swift 3-iOS:將anyObject轉換為字符串

[英]swift 3 - ios : convert anyObject to string

我們如何在swift 3中將任何對象轉換為字符串,這在舊版本中通過使用非常簡單。

var str = toString(AnyObject)

我嘗試了String(AnyObject)但是輸出始終是可選的,即使我確定AnyObject不是可選值也是如此。

編譯器建議您將代碼替換為:

let s = String(describing: str)

如果您希望通過空字符串靜默失敗,而不是將原來不是字符串的內容存儲為字符串,則可以使用另一種選擇。

let s =  str as? String ?? ""

否則,您可以通過上面/下面的答案來識別和拋出錯誤。

這是您的三個選擇:

選項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 b = a as? String ?? ""
print(b) // Print a blank string if a was not a string

嘗試

let a = "Test" as AnyObject
guard let b = a as? String else { // Something went wrong handle it here }
print(b) // Test

嘗試這個 -

var str:AnyObject?
str = "Hello, playground" as AnyObject?
if let value = str
{
   var a = value as! String
}

要么

var a = str as? String

這是一個簡單的函數( repl.it ),它將任何值混搭到一個字符串中,而nil變成一個空字符串。 我發現它對於處理ID不一致地使用null ,空格,數字和數字字符串的JSON很有用。

import Foundation

func toString(_ value: Any?) -> String {
  return String(describing: value ?? "")
}

let d: NSDictionary = [
    "i" : 42,
    "s" : "Hello, World!"
]

dump(toString(d["i"]))
dump(toString(d["s"]))
dump(toString(d["x"]))

印刷品:

- "42"
- "Hello, World!"
- ""

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM