内部 NSMutableArray NSMutableArraySwift

标签: ios Swift
发布时间: 2017/3/6 23:39:21
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我试图存储内 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
}

结果︰ 变量NSMutableArray是复位。

解决方法 1:

与swift的本机数组不同 (这是 struct s 和因而值类型), NSMutableArray s 是对象 (引用类型)。 通过清除出可变的数组添加到另一个阵列后,你在清理出该对象的唯一副本。

如果你的声明移到 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 因为这不再是必要的因为你得到一个新数组,每次通过循环。

赞助商