Swift: 从 NSOrderedSet 中删除一个对象

Swift: removing an object from NSOrderedSet

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

let tempSet: NSMutableOrderedSet? = playset!.musicItems!.mutableCopy as? NSMutableOrderedSet
        tempSet!.remove(musicItem)
        playset!.musicItems = tempSet

但是它给我一个错误EXC_BAD_INSTRUCTION。 我该如何解决?

mutableCopy是方法,必须作为方法来调用,在后面加上()

playset!.musicItems!.mutableCopy() as? NSMutableOrderedSet

您目前正在尝试将方法 () -> Any? 本身转换为 NSMutableOrderedSet,而不是调用该方法的结果。因此警告。

转换永远不会成功,tempSet 将永远停留在 nil,在下一个 ! 崩溃。