Fonction générique et atsortingbut avec Equatable et Printable comme parameters dans Swift

Comment écrire une fonction qui autorise tous les objects mais doit être Equatable tableau d'objects Printable et Equatable dans Swift?

 class func withItems(items: [AnyObject]){ } 
  1. J'ai besoin d'éléments pour être Printable et Equatable
  2. Je dois déclarer que le tableau d'éléments est un atsortingbut de ma class

Merci

Vous pouvez utiliser des contraintes generics pour requérir les deux protocoles dans une fonction:

 class func withItems<T: AnyObject where T: Equatable, T: Printable>(items: [T]) { // ... } 

Exiger que d'une propriété stockée est plus difficile, puisque Equatable ne peut pas être utilisé comme un type. Pour ce faire, vous devez essentiellement rendre la class elle-même générique. Vous feriez mieux de déclarer les items sous la forme d'un tableau de AnyObject et de leur donner access via des methods generics comme celle-ci.