繁体   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