2017-06-16 38 views
0

enter image description here我發現從NSOrderedSet中刪除對象的解決方法是將其從其可變副本中刪除。修復XCode的警告後,我的代碼是:Swift:從NSOrderedSet中刪除對象

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

但它給了我一個錯誤EXC_BAD_INSTRUCTION。 我該如何解決它?

+0

你確定tempSet有musicItem嗎?檢查斷點或在tempset之前放置一條if語句 –

+0

你爲什麼不使用Swift'Set'的任何原因? – JAL

+2

不相關,但考慮使用較少的問題和感嘆號。並非一切都應該是可選的。 @JAL Swift缺少本地有序集合類型。 – vadian

回答

1

mutableCopy是一種方法,它必須被稱爲一個方法,添加()後:

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

您正在嘗試投放的方法() -> Any?本身的NSMutableOrderedSet,調用該方法不結果。因此警告。

演員永遠不會成功,tempSet將永遠保持nil,在接下來的!上崩潰。