【发布时间】:2018-01-13 18:48:30
【问题描述】:
jsonString 在下一行中为 nil
let jsonString = try? String(contentsOf: URL(fileURLWithPath:currentMedia?.rawDataFile ?? ""))
当在下面的代码中指定数据类型时,jsonString 不是 nil 并且有一个值:
let jsonString:String = try? String(contentsOf: URL(fileURLWithPath:currentMedia?.rawDataFile ?? ""))
虽然问题出在第一行
try? String(contentsOf: URL(fileURLWithPath:currentMedia?.rawDataFile ?? ""))
被评估为非空字符串值,但 nil 被分配给 jsonString。当显式类型 String 用于 jsonString 时,预期的非空值将分配给 jsonString。
我需要帮助来理解这种行为。
【问题讨论】:
-
我认为你的问题中遗漏了一些东西,你的两个句子是一样的吗?
-
是的,我忘记了数据类型。
-
您后面的代码会导致编译时错误。请在发布之前确认代码确实重现了问题。
-
两种类型都没有错误。
let jsonString2:String? = try? String(contentsOf: url) -
@RAJAMOHAN-S 您的 String 数据类型在问题中是可选的...
标签: ios swift types type-inference