ios - 在 swift : Difference between Array VS NSArray VS [AnyObject]

标签 ios swift data-structures collections

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

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

最佳答案

Array是一个struct,因此在Swift 中它是一个值类型NSArray是一个不可变的 Objective C ,因此它是 Swift 中的一个引用类型,并且桥接到 Array<AnyObject> . NSMutableArrayNSArray 的可变子类.

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/

相关文章:

swift - 类型 'AnyObject' 的值没有成员 ''

ios - NSCalendar 初始化展开为 nil,Swift

data-structures - 为什么链表几乎总是与单独的链一起使用?

ios - MapKit 避开某些路线(高速公路、收费站等)

ios - 如何在同一类中使用警报和微调器?

android - Firebase 适合做实时 table 游后端吗?

xcode - 与 struct 中定义的 Void 回调相关的 Swift 编译器错误的解决方法/解决方案

data-structures - Redis 哈希 : How to Query on both Key and Value

c - 如何根据C中的可变整数访问 `struct'的成员?

iOS Navigation Controller/Storyboard Segues 主要优势?