如标题所示,Array vs NSArray vs [AnyObject]有什么区别?
另外,最推荐的解决方法。我的意思是建议最简单的实现是什么。谢谢。
Array是 struct ,因此它是Swift中的 值类型 。 NSArray是一个不变的Objective C 类 ,因此它是Swift中的 引用类型 ,并桥接到Array<AnyObject>。 NSMutableArray是的可变子类NSArray。
Array
NSArray
Array<AnyObject>
NSMutableArray
var arr : NSMutableArray = ["Pencil", "Eraser", "Notebook"] var barr = ["Pencil", "Eraser", "Notebook"] func foo (var a : Array<String>) { a[2] = "Pen" } func bar (a : NSMutableArray) { a[2] = "Pen" } foo(barr) bar(arr) println (arr) println (barr)
印刷品:
( Pencil, Eraser, Pen ) [Pencil, Eraser, Notebook]
因为foo更改的局部值a并bar更改参考。如果您这样做let arr而不是var像其他参考类型那样也可以使用。
foo
a
bar
let arr
var