这行代码似乎会造成问题为什么我快速动态投射失败?
{
gymnastTables.gymnastsArray = defualts.objectForKey("Gymnasts") as Array
}
为什么我得到一个沮丧的错误?
这行代码似乎会造成问题为什么我快速动态投射失败?
{
gymnastTables.gymnastsArray = defualts.objectForKey("Gymnasts") as Array
}
为什么我得到一个沮丧的错误?
objectForKey
有返回类型:AnyObject?
因此它可能是nil
您可以先通过as AnyObject!
解开它丧气后Array
gymnastTables.gymnastsArray =
defualts.objectForKey("Gymnasts") as AnyObject! as Array<AnyObject>
你没有提到Array
类型,所以我添加AnyObject
这将永远是真的
在斯威夫特,你有指定Array
包含什么类型的,要么喜欢Array<Gymnast>
或[Gymnast]
。
可能已经完成,没有足够的代码来说明。 – zaph 2014-09-01 23:43:51
我想你应该发布更多代码并报告完整的错误消息。乍一看,我想说错误是由于“体操运动员”对应的值不是一个数组而导致的。你有没有尝试将它保存到一个单独的变量并检查出来? – Antonio 2014-09-01 21:05:27
调试:如果可能,请使用最少的代码减少问题以产生问题。在这种情况下,'gymnastTables.gymnastsArray'比''let x''更复杂,用于测试。是否让'x = defuals.objectForKey(“Gymnasts”)作为Array'工作? 'defaults'好吗?是否有''Gymnasts''元素(你可以检查默认文件)。 – zaph 2014-09-01 23:43:17