从PFObject数组中删除特定的PFObject

时间:2015-08-26 15:32:49

标签: ios swift function

我正在尝试创建一个可以删除以下项目的函数:

var array = [23,36,12,45,52,63]
removeItem(12,array)
result : array = [23,36,45,52,63]

我正在尝试为PFObject实现这个,但我收到了错误:

public func removeObjectFromArray(user:PFObject,array:[PFObject]) -> [PFObject]{

    for var i = 0;i < array.count ; i++ {
        if array[i].objectId == user.objectId{
            array.removeAtIndex(i)
            return array
        }
    }
}

我得到的错误:

Immutable type of [PFObject] only ha mutating members named 'removeAtIndex'

对此有何解决方案?

谢谢

2 个答案:

答案 0 :(得分:0)

尝试这样做:

public func removeObjectFromArray(user: PFObject, array: [PFObject]) -> [PFObject] {
    var a = array
    for i in 0..<a.count {
        if a[i].objectId == user.objectId {
            a.removeAtIndex(i)
            return a
        }
    }
    return a
}

问题是你试图修改函数参数。

您还可以通过添加var关键字使函数参数变为可变,这里是相关问题:Swift make method parameter mutable?

答案 1 :(得分:0)

我不是一个快速的开发人员,但我从不喜欢在循环中删除对象。这是我将如何做到的(伪代码):

var a = empty array
for i in (0 -> length of array) {
    if array[i].objectId != user.objectId {
        a.addObject(array[i])
    }
}
return a