1
我得到了“有条件的转换总是成功”的“as?AnyObject”的警告。那么“?”这是不需要的!? 如果我删除,我得到一个错误,我必须有“可选”,“?”:斯威夫特:有条件的演员不需要,但“必须”?
func toDictionary() -> [String: AnyObject] {
var retval = [String: AnyObject]()
if let
steeringItems = self.steeringItems as? AnyObject,
destinationPath = self.destinationPath as? AnyObject
{
retval["steeringItems"] = steeringItems
retval["gDstPath"] = destinationPath
}
return retval
}
什么是正确的方法是什么?
什么'steeringItems'和'destinationPath'的类型?听起来就像你只是想将它们直接分配给字典而没有任何可选的绑定 - 因为它们不是可选项,并且可以自由地上传到AnyObject。 – Hamish
我认为问题在于你投射到AnyObject,它已经知道,但你应该投射到预期类型的属性,如String/Int – Scriptable
“AnyObject”完成它所说的事情。这是_任何对象。在不需要的时候投射到'AnyObject'就像将'Fruit'投射到'Anything'一样。水果是一件东西,所以演员们一定会成功。 – Arc676