正如标题所说,Array vs NSArray与[AnyObject]之间有什么区别?
此外,最推荐的方法是什么.我的意思是推荐,最简单的实现是什么.谢谢.
在Swift中,将数组分配给新变量实际上是复制.例如(如在Apple doc for Array中):
var numbers = [1, 2, 3, 4, 5]
var numbersCopy = numbers
numbers[0] = 100
print(numbers)
// Prints "[100, 2, 3, 4, 5]"
print(numbersCopy)
// Prints "[1, 2, 3, 4, 5]"
Run Code Online (Sandbox Code Playgroud)
我如何实际获得指向同一数组的指针,因此修改元素会反映在同一个数组中?(原因是我在另一个类的静态实例中访问,例如"SomethingManager.sharedInstance.arrayList [aKey]",我想将它缩短为指定的指针变量.)
(我很想知道如何在Swift 4和5中执行此操作.我没有看到Swift语言存在任何问题.)
编辑:
我提供了我需要有一个指针而不是副本的理由.
说,我有以下代码:
var childrenTasks = [Int64: [TaskRef]]()
Run Code Online (Sandbox Code Playgroud)
在类中定义,可以访问:
MyClass.singleton.parentTask[parentTaskID].childrenTask[taskRefID]
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,访问childrenTask的代码非常长.我想要一个指针,只是一个例子: -
var aPointerToChildrenTasks = MyClass.singleton.parentTask[parentTaskID].childrenTask[taskRefID] // I want a pointer, not a copy!
aPointerToChildrenTask.remove(at: anIndex) // if it is a pointer, I can manipulate the …Run Code Online (Sandbox Code Playgroud)