Ios Swift:从数据集中删除对象

Ios Swift:从数据集中删除对象,ios,swift,nsorderedset,Ios,Swift,Nsorderedset,我发现从SensorDeredSet中删除对象的一个解决方法是将其从其可变副本中删除。在修复XCode的警告后,这就是我的代码: let tempSet: NSMutableOrderedSet? = playset!.musicItems!.mutableCopy as? NSMutableOrderedSet tempSet!.remove(musicItem) playset!.musicItems = tempSet 但它给了我一个错误的EXC\u BA

我发现从SensorDeredSet中删除对象的一个解决方法是将其从其可变副本中删除。在修复XCode的警告后,这就是我的代码:

let tempSet: NSMutableOrderedSet? = playset!.musicItems!.mutableCopy as? NSMutableOrderedSet
        tempSet!.remove(musicItem)
        playset!.musicItems = tempSet
但它给了我一个错误的EXC\u BAD\u指令。
如何修复它?

mutableCopy
是一个方法,它必须作为一个方法调用,在它之后添加
()

playset!.musicItems!.mutableCopy() as? NSMutableOrderedSet
您当前正试图将方法
()->Any?
本身强制转换为
NSMutableOrderedSet
,而不是调用该方法的结果。因此发出警告


演员阵容永远不会成功,
tempSet
将始终保持
nil
,在下一个
时崩溃

您确定tempSet有音乐项吗?在断点之前检查断点或放置if语句,为什么不使用SWIFT <代码> SET/COM>?不相关,但考虑使用较少的问题和感叹号。并不是所有的事情都应该是可选的@日航斯威夫特缺少本机订购的集合类型。@vadian Ah遗漏了那个细节。很可能是重复:问题是我不知道mutableCopy使用的类型(如何转换),我附上了屏幕截图