我用 Swift 2.2 完成了下面的代码,但是当切换到 Swift 3.0 时,在 if 条件“二元运算符 '??' 时出现错误不能应用于“AnyObject?”类型的操作数和‘字符串’”
if let custID = dataDict["cust_id"] ?? "",
let custName = dataDict["cust_name"] ?? "",
let fileName = dataDict["filename"] ?? "",
let transNumber = dataDict["trans_no"] ?? "" {
linesheet_custID = (custID["text"] ?? "" ) as! String
linesheet_custName = (custName["text"] ?? "" ) as! String
linesheet_filename = (fileName["text"] ?? "" ) as! String
linesheet_TransNumber = (transNumber["text"] ?? "" ) as! String
}
请提出解决方案,如上面代码中的 if let 语句,如果字典值返回 nil,则我将空白字符串指定为 ("") 用于特定键
最佳答案
您应该将从字典中获得的值转换为可选字符串。
例如:
let custID = (dataDict["cust_id"] as String?) ?? ""
关于swift - 二元运算符 '??' 不能应用于类型 'AnyObject?' 和 'String' 的操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39871583/