我收到以下错误。我的应用程序崩溃了。
无法转换类型' __ NSSingleEntryDictionaryI'的值(0x1015f8210)到' NSMutableDictionary'
我所做的只是:
var tempDict = self.arrayData.object(at: indexPath.row) as!
NSMutableDictionary
我已经在堆栈上检查了其他人的答案,但遗憾的是他们对我没有帮助。
有人能告诉我为什么会这样吗?
任何帮助都会受到高度赞赏!!
答案 0 :(得分:2)
根本不要在Swift中使用可变的Foundation集合类型(NSMutable..
)。它们与Swift对应物无关,您无法将集合对象强制转换为NSMutable...
将arrayData
声明为本机Swift词典数组
var arrayData = [[String:Any]]()
并更改该行以获取字典
var tempDict = self.arrayData[indexPath.row]
使用tempDict
关键字可以减少代码,没有类型广播和var
可变。
答案 1 :(得分:1)
Dictionary表示{},Array表示[] //在打印的响应中,您可能有()
的数组所以,你的tempDict部分是字典数组......你必须像
那样解析它var tempDict = self.arrayData.object(at: indexPath.row) as! [[String : Any]]
虽然请不要使用强制解包..使用
if let
或guard
声明
if let tempDict = self.arrayData.object(at: indexPath.row) as! [[String : Any]]
{
// do something
}
else
{
// catch the error
}