Свифт 3:
Вы можете использовать встроенную функциональность Swifts для поиска пользовательских объектов в массиве.
Сначала вы должны убедиться, что ваш пользовательский объект соответствует протоколу : Equatable .
class Person : Equatable { //<--- Add Equatable protocol
let name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
//Add Equatable functionality:
static func == (lhs: Person, rhs: Person) -> Bool {
return (lhs.name == rhs.name)
}
}
С функцией Equatable, добавленной к вашему объекту, Swift теперь покажет вам дополнительные свойства, которые вы можете использовать в массиве:
//create new array and populate with objects:
let p1 = Person(name: "Paul", age: 20)
let p2 = Person(name: "Mike", age: 22)
let p3 = Person(name: "Jane", age: 33)
var people = [Person]([p1,p2,p3])
//find index by object:
let index = people.index(of: p2)! //finds Index of Mike
//remove item by index:
people.remove(at: index) //removes Mike from array