Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 表示类型是非可选的,但打印是可选的_Swift - Fatal编程技术网

Swift 表示类型是非可选的,但打印是可选的

Swift 表示类型是非可选的,但打印是可选的,swift,Swift,我有以下代码: let result_string = "\(String(describing: value))" 因为我需要将其从任何类型转换为字符串。但是,当我打印结果字符串时,它会打印: optional(abcd) 我怎样才能让它打印出来 abcd ? 当我尝试对optionals进行其他修复时,它告诉我result_字符串不是可选的,不允许我强制展开 编辑: 值是可选的,所以强制展开它修复了我的问题 let result_string = "\(String(describin

我有以下代码:

let result_string = "\(String(describing: value))"
因为我需要将其从任何类型转换为字符串。但是,当我打印结果字符串时,它会打印:

optional(abcd)
我怎样才能让它打印出来

abcd
?

当我尝试对optionals进行其他修复时,它告诉我result_字符串不是可选的,不允许我强制展开

编辑: 值是可选的,所以强制展开它修复了我的问题

let result_string = "\(String(describing: value!))"
你可以试试

if let res = value {
  print(res)
}

guard let res = value { return }
print(res)

您可以尝试以下方法:

var值:有吗?=“abcd”

让result_string=值为!串

打印(结果字符串)

我们必须把任何东西都压到绳子上。
在操场工作。

我猜:
value
是可选的…@Martin R那么我应该尝试强制展开value吗?@MartinR谢谢,强制展开修复了我的问题。如果该值为nil@AthreyaDaniel您的结果字符串是可选的,但类型为Any的值不是可选的,您正在尝试强制展开非可选值。对不起,Prabhat,但这是错误的。在您的示例中,
result\u string
是包含文字字符串“optional(value)”的非可选字符串。与OP的错误相同。@Moritz如果value是Any类型,带有optional,那么它将生成optional(value),我想请在操场上测试你的代码,Prabhat。您将看到“条件绑定的初始值设定项必须具有可选类型,而不是‘String’”,因为正如我所说的,在您的示例中,
result\u String
不是可选的。提示:“插值”…;)谢谢,明白了。我们必须贬低任何类型的价值。我已经编辑了答案并进行了验证。现在你的代码没有错误,当然,但它没有回答OP的问题。这并不能解决他们的问题。