ios - 无法转换类型的值(NSSingleEntryDictionary)

标签 ios swift3

我收到以下错误。我的应用程序因此崩溃了。

Could not cast value of type '__NSSingleEntryDictionaryI' (0x1015f8210) to 'NSMutableDictionary'

我所做的就是:

var tempDict = self.arrayData.object(at: indexPath.row) as!
NSMutableDictionary

我已经检查了堆栈上的其他答案,但不幸的是它们对我没有帮助。

有人可以告诉我为什么会发生这种情况吗?

任何帮助将不胜感激!!

最佳答案

根本不要在 Swift 中使用可变的 Foundation 集合类型 (NSMutable..)。它们与 Swift 对应项无关,并且您无法将集合对象强制转换为 NSMutable...

arrayData 声明为原生 Swift 字典数组

var arrayData = [[String:Any]]()

并更改行以获取字典

var tempDict = self.arrayData[indexPath.row]

代码更少,无类型转换,并且 tempDict 可通过 var 关键字进行可变。

关于ios - 无法转换类型的值(NSSingleEntryDictionary),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42241323/

相关文章:

ios - Swift 如何使用 `.ChildAdded` 检索根子级

ios - 我应该如何在 Swift 中创建一个依赖于另一个变量的变量?

ios - 对成员 'putData' 错误的引用不明确

swift - swift 中的并行编程是否消除了值类型优化?

swift - 是否有与 Swift 3's ' Data' 类型等效的 writeToFile ?

objective-c - 在 iOS5 中使用过滤音频单元效果

ios - 从单元格 Collection View 中的点击中放松

Swift 3 - UITextView 总行计数器

swift - 如何在场景中生成物体?

swift - 方法不会为 Set<NSObject> 覆盖其父类(super class)中的任何方法