ada*_*603 3 arrays performance nsmutablearray swift
所以在Swift中,有什么区别
var arr = ["Foo", "Bar"] // normal array in Swift
Run Code Online (Sandbox Code Playgroud)
和
var arr = NSMutableArray.array() // 'NSMutableArray' object
["Foo", "Bar"].map {
arr.addObject($0)
}
Run Code Online (Sandbox Code Playgroud)
除了是同一件事的不同实现.两者似乎都具有可能需要的所有基本功能(.count插入/移除对象等的能力).
NSMutableArray是在Obj-C时代发明的,显然是为了提供更现代的解决方案,而不是常规的C风格阵列.但它与Swift的内置阵列相比如何呢?
哪一个更安全和/或更快?
在我看来,最重要的区别是NSMutableArray是类类型而Array是值类型.Ergo,NSMutableArray将作为引用传递,而Swift数组将按值传递.
更多NSMutableArray是NSObject的子类,而Array没有父类. - 这意味着在使用NSMutableArray时可以访问所有NSObject方法和其他"好东西".
修改它时不会复制NSMutableArray,Swift数组也是如此.
哪一个最好取决于您的应用程序.
我发现(当使用UIKit和Cocoa触摸时)NSMutableArray在我需要持久模型时很棒,而Array非常适合性能和丢弃数组.
这些只是我最初的想法,我相信社区中的某些人可以提供更深入的见解.