您可以使用Swift的
Set
:
let array = [product,product2,product3]
let set = Set(array)
你需要使 Product
符合 Hashable
(从而符合 Equatable
):
class Product : Hashable {
var subCategory = ""
var hashValue: Int { return subCategory.hashValue }
}
func ==(lhs: Product, rhs: Product) -> Bool {
return lhs.subCategory == rhs.subCategory
}
而且,如果Product
是一个NSObject
的子类,您必须重写isEqual
:
override func isEqual(object: AnyObject?) -> Bool {
if let product = object as? Product {
return product == self
} else {
return false
}
}
显然,将其修改以反映您在类中可能具有的其他属性。例如:
class Product : Hashable {
var category = ""
var subCategory = ""
var hashValue: Int { return [category, subCategory].hashValue }
}
func ==(lhs: Product, rhs: Product) -> Bool {
return lhs.category == rhs.category && lhs.subCategory == rhs.subCategory
}