it should work
class Base {} class A: Base {} class B: Base {} var arrBase: Array<Base> = [] var arrA: Array<A> = [] arrA.append(A()) var arrB: Array<B> = [] arrB.append(B()) arrBase = arrA
... your problem seems to be somewhere else in your code. Can you show us your general OrderedSet structure? it looks like you are trying to do something like
class Base {} class A: Base {} let base = Base() let a = A() struct S<T:Base> { var t: T } var s = S(t: base) let sa = S(t: a)
... it works
protocol P { func whoAmI()->Void } class Base:P { func whoAmI() { print("I am Base") } } class A: Base { override func whoAmI() { print("I am A") } } let base = Base() let a = A() struct S<T: Base> { var t: Base } var s = S(t: base) let sa = S(t: a) s = sa stwhoAmI()
.... guys, built-in type or not
import Foundation // Int and Double conforms to Hashable protocol var a: Set<Int> = [] var b: Set<Double> = [] a = b // IMPOSSIBLE eventhough Set<T:Hashable> is build-in Swift type
... how to work with OrderedSet
import Foundation class Exercise: Hashable { var name: String = "" var hashValue: Int { return name.hashValue } } func ==(lhs: Exercise, rhs: Exercise) -> Bool { return lhs.name == rhs.name } class StrengthExercise: Exercise {} class CardioExercise: Exercise {} var displayedExercises = Set<Exercise>() let strengthExercises = Set<StrengthExercise>() let cardioExercises = Set<CardioExercise>() displayedExercises = strengthExercises
source share