小编典典

在Swift中:数组VS NSArray VS [AnyObject]之间的区别

swift

如标题所示,Array vs NSArray vs [AnyObject]有什么区别?

另外,最推荐的解决方法。我的意思是建议最简单的实现是什么。谢谢。


阅读 327

收藏
2020-07-07

共1个答案

小编典典

Arraystruct ,因此它是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更改的局部值abar更改参考。如果您这样做let arr而不是var像其他参考类型那样也可以使用。

2020-07-07