从数组

时间:2015-12-09 22:43:28

标签: ios arrays swift macos

我想从数组A中删除类[A]()的自定义对象

我很清楚这是一个关于SO的讨论得很好的问题,但对于初学者或专家来说似乎没有一个通用和权威的答案。

示例:我有一个FriendRequest类,其中包含一些属性。

当我接受FriendRequest时,应将其从friendRequestArray移除。

我正在寻找一个汇总最常见方法和最佳实践的答案;类似的东西:

  

从Swift 2.1开始,有3种方法(...)

     

请不要使用X,因为它已被弃用(...)

     

Y是这样做的错误方法“等等。

1 个答案:

答案 0 :(得分:3)

我不确定我理解这个问题,让我们看看。

FriendRequest

你有FriendRequest这样的课程

class FriendRequest {
    let id: String
    init(id: String) {
        self.id = id
    }
}

让它成为Equatable

extension FriendRequest: Equatable {}
func ==(left: FriendRequest, right: FriendRequest) -> Bool {
    return left.id == right.id
}

请求

现在我们创建3 FriendRequest(s)

let request0 = FriendRequest(id: "000")
let request1 = FriendRequest(id: "001")
let request2 = FriendRequest(id: "002")

让我们创建requests数组

var requests = [request0, request1, request2]

删除请求

现在假设我们要删除request1。我们需要找到索引(如果确实存在)并使用它来删除数组的元素。

if let index = requests.indexOf(request1) {
    requests.removeAtIndex(index)
}

就是这样

requests // [{id "000"}, {id "002"}]

完成Swift 2.1.1和Xcode Playground 7.2。