我在这一行中发现了这个错误:如果我的代码缓存=== nil:
struct dataArray {
var dataById = Dictionary<String, Any>()
}
var id :String?
func dataBegin() {
let idString = id as String!
let byCategory = [dataArray().dataById[idString]]
if byCategory === nil { //error:'[Any?]' is not convertible to 'Anyobject?'
// some code
}
}
答案 0 :(得分:1)
===
是身份运算符,应该用于检查两个引用是否指向同一个实例。您可能希望使用==
来检查nil。
但是,byCategory
变量初始化为非可选数组,因此不能为nil,因此无法检查nil。
我认为该功能的逻辑存在错误。