正如标题所说,Array vs NSArray vs [AnyObject] 有什么区别?
此外,最推荐的解决方法是什么。我的意思是推荐,什么是最简单的实现。谢谢。
最佳答案
Array
是一个struct,因此在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
与其他引用类型一样。
关于ios - 在 swift : Difference between Array VS NSArray VS [AnyObject],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28889705/