我们如何在swift 3中将anyobject转换为字符串,在旧版本中使用它非常容易。
var str = toString(AnyObject)
我尝试了String(AnyObject)
,但输出始终是可选的,即使我确定AnyObject不是可选值。
答案 0 :(得分:28)
编译器建议您用以下代码替换代码:
$('body').one('click', '#submitCandidature', function (e) { ...
如果您希望使用空字符串静默失败而不是将最初可能不是字符串的字符串存储为字符串,则可以使用另一个选项。
let s = String(describing: str)
否则你有办法在上面/下面的答案中识别和抛出错误。
答案 1 :(得分:9)
以下是您的三个选项:
选项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 - 让?? (null合并运算符)
let b = a as? String ?? ""
print(b) // Print a blank string if a was not a string
答案 2 :(得分:2)
尝试
itsadmin
答案 3 :(得分:1)
试试这个 -
var str:AnyObject?
str = "Hello, playground" as AnyObject?
if let value = str
{
var a = value as! String
}
OR
var a = str as? String
答案 4 :(得分:0)
这是一个简单的函数(repl.it),它将把任何值混成字符串,而nil
变成一个空字符串。我发现它对于处理不一致地使用null
,空白,数字和数字字符串作为ID的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!"
- ""