我正在尝试创建一个可以删除以下项目的函数:
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'
对此有何解决方案?
谢谢
答案 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