现在 Swift 的 Array 由于完全的值语义而真正是不可变的,那么我该如何创建一个不可变数组的可变副本呢?就像 Obj-C 的 mutableCopy()
一样。当然,我可以将这个数组强制转换为 NSArray 并使用 mutableCopy()
,但是我不想使用 NSArray,因为它没有严格类型。
我有一个工具栏 toolbar
,其中有从 storyboard 中获取的 items
。我想从工具栏中删除一个项目并使用 toolbar.setItems
。我希望不必将它强制转换为 NSArray
,因为这些函数都不接受 NSArrays
,它们需要 [AnyObject]
。
显然,现在当我调用 removeAtIndex()
时它不起作用,这是正确的。我只需要一个 mutableCopy。
简单地赋值给 var 对我来说不起作用,并显示 'Immutable value of type [AnyObject]
'。
var toolbarItems = self.toolbar.items
toolbarItems.removeAtIndex(2) //Immutable value of type [AnyObject]
我正在使用Beta 3版本。