shl*_*821 37 collections ios data-structures swift
正如标题所说,Array vs NSArray与[AnyObject]之间有什么区别?
此外,最推荐的方法是什么.我的意思是推荐,最简单的实现是什么.谢谢.
Krz*_*zak 61
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)
Run Code Online (Sandbox Code Playgroud)
打印:
(
Pencil,
Eraser,
Pen
)
[Pencil, Eraser, Notebook]
Run Code Online (Sandbox Code Playgroud)
因为foo更改了本地值a并bar更改了引用.如果您这样做let arr而不是var与其他引用类型一样,它也将起作用.
Dav*_*rry 22
Array 是一个Swift构造和泛型结构,这意味着它可以是任何特定类型的数组(Int,String,AnyObject等)
[T] 是语法糖 Array<T>
AnyObject 是任何类的对象,包括Objective-C类.
NSArray 是一个Objective-C构造,可以保存任何Objective-C对象,并透明地映射到或来自 Array<AnyObject>
| 归档时间: |
|
| 查看次数: |
37418 次 |
| 最近记录: |