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
,在下一个 !
崩溃。
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
,在下一个 !
崩溃。