Thanks, I never seem to know when to use .self. On Fri, Jul 8, 2016 at 8:15 AM, Dan Loewenherz <d...@lionheartsw.com> wrote:
> To my knowledge, you can’t do exactly what you’re trying to do, but this > is close: > > for subclassObject in objects { > > switch subclassObject.self { > > case is Subclass1: > > doSomethingWith(subclassObject as! Subclass1) > > > case is Subclass2: > > doSomethingWith(subclassObject as! Subclass2) > > > case is Subclass3: > > doSomethingWith(subclassObject as! Subclass3) > > > default: > > break > > } > > } > > On Fri, Jul 8, 2016 at 10:11 AM, Nate Birkholz via swift-users < > swift-users@swift.org> wrote: > >> This looks like it doesn't work (swift 2.x), but wanted to be sure it's >> not supported: >> >> class Superclass {} >> class Subclass1 : Superclass {} >> class Subclass2 : Superclass {} >> class Subclass3 : Superclass {} >> >> let sc1 = Subclass1() >> let sc2 = Subclass2() >> let sc3 = Subclass3() >> >> let objects : [Superclass] = [sc1, sc2, sc3] >> >> for subclassObject in objects { >> switch subclassObject { >> case let object = subclassObject as? Subclass1: >> doSomethingWith(object) >> case let object = subclassObject as? Subclass2: >> doSomethingWith(object) >> case let object = subclassObject as? Subclass3: >> doSomethingWith(object) >> default: >> return >> } >> } >> This gives an error, expecting a colon (:) after object on every case. >> >> I wanted to be sure I wasn't missing something in my syntax (nor some >> obvious-to-others reason this isn't supported) before going to swift >> evolution. >> >> >> -- >> Nate Birkholz >> >> _______________________________________________ >> swift-users mailing list >> swift-users@swift.org >> https://lists.swift.org/mailman/listinfo/swift-users >> >> > -- Nate Birkholz
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users