swift - 如何避免对象被释放?

标签 swift

static func appendMissingObjToArray(var oldArray:[AnyObject],newArray:[AnyObject]){
    for n in newArray{
        var isExist = false
        for o in oldArray{
            if(n.isEqual(o)){
                //exist
                isExist = true
                break
            }
        }
        if(!isExist){
            oldArray.append(n)
        }
    }
}

上面的函数是将newArray中的一些数据追加到oldArray中。 当这个功能完成后。从 oldArray 获取数据时,出现 BAD ACCESS 错误。所以我认为这是由于oldArray中新添加的对象已被释放并且newArray被释放。

我可以做些什么来避免这种情况?

最佳答案

我相信您需要将 oldArray 参数声明为 inout。如下:

//...
static func appendMissingObjToArray(inout oldArray:[AnyObject],newArray:[AnyObject]){
//...

然后您可以执行以下操作(请注意下面的与号 &:

class01.appendMissingObjToArray(&myOldArray, newArray: myNewArray)
println(myOldArray) // will contain the appended result

像这样完成myOldArray(传递的数组)将被改变。因此,如果保留原件很重要,您可能需要传递原件的副本。

关于swift - 如何避免对象被释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31655574/

相关文章:

swift - 你能检查一个类型(不是实例)是否是另一个类型的子类?

swift - jClouds Swift Bloblist NullPointerException

ios - 在 Controller Swift 之间传递对象

ios - 模糊效果在模拟器中显示,但在 iPhone 上不显示

ios - 如何在 Swift 中显示溢出到另一个单元格的单元格阴影

ios - 如何测试 Siren(https ://github. com/ArtSabintsev/Siren) 是否在我的应用程序上正常移动

ios - Swift Array.indexOf 包含 nil 值

ios - Swift - 使用 tableView 的大标题过渡

ios - Swift Xcode 从闭包内的通用类型参数获取 <<error type>>

swift - 使用 Swift 将天/小时添加到 NSDate