gpt4 book ai didi

ios - NSMutableArray 内的 NSMutableArray Swift

转载 作者:行者123 更新时间:2023-11-28 06:39:22 27 4
gpt4 key购买 nike

我正在尝试将 NSMutableArray 存储在 NSMutableArray 中。所以

var all:NSMutableArray = NSMutableArray()
let localArray:NSMutableArray = NSMutableArray()
var i = 0
for ..........{

/* Add objects to localArray */
localArray.addObject("1\(i)")
/* Add localArray to all Array */
all.addObject(localArray)
/* Reset the array after adding to `all` array */
localArray.removeAllObjects()
i+=1
}

但是 结果:all 变量 NSMutableArray 被重置。

最佳答案

与 Swift 的原生数组(它们是 struct,因此也是值类型)不同,NSMutableArray 是对象(引用类型)。通过在将可变数组添加到另一个数组后清除它,您将清除该对象的唯一副本。

如果将 localArray 的声明移动到循环内部,每次循环都会获得一个新的数组实例,并且您将实现您正在寻找的行为:

let all = NSMutableArray()
var i = 0
for ..........{
let localArray = NSMutableArray()

/* Add objects to localArray */
localArray.addObject("1\(i)")
/* Add localArray to all Array */
all.addObject(localArray)

i += 1
}

请注意,我已经删除了清除 localArray 的代码,因为这不再是必需的,因为您每次通过循环都会获得一个新数组。

关于ios - NSMutableArray 内的 NSMutableArray Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38396075/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com