如标题所示,Array vs NSArray vs [AnyObject]有什么区别?
另外,最推荐的解决方法。我的意思是建议,最简单的实现是什么。谢谢。
最佳答案
Array
是一个结构,因此它是Swift中的值类型。NSArray
是一个不变的Objective C类,因此它是Swift中的引用类型,并桥接到Array<AnyObject>
。NSMutableArray
是NSArray
的可变子类。
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
,它也将起作用。